2012-12-04 2 views
0

나는 내가 소수점 이하 숫자를 얻을하는 데 사용할 수있는 코드의 라인을 필요로하는 소수점 숫자를 표시하는 내 결과를 포맷 할 수있는 방법 아래 코드 :나는 을 실행할 때

double results = 1500/1000; 


     txtview.setText("K " + resultsoldk); 

알림을 포함시킬 결과가 필요합니다.

+1

무엇이 resultsoldk입니까? 결과에서 결과를 얻지 만 textold에서 resultsoldk를 사용하고 있습니까? –

+0

가능한 [Format Float to n 소수 자릿수] (http://stackoverflow.com/questions/5195837/format-float-to-n-decimal-places) –

답변

1

당신은 두 번 당신이 문제는

double results = 1500/1000; 

의 결과가 1.0 상태인지에 DecimalFormat

DecimalFormat df = new DecimalFormat("0.00##"); 
String formattedResult=df.format(results); 
+0

감사합니다. Rasel, 도움이됩니다. –

2

사용하여 결과를 포맷 할 수 있습니다 또한

double results = (double)1500/1000; 

아래처럼 사용 캐스트 할 수 있습니다 1.5, 수행 중이므로 정수부. 분할 할 때 숫자 중 적어도 하나가 부동 소수점 숫자인지 확인하십시오. 예를 들어 :

// By adding .0 you make it a double literal instead of an int literal 
double results = 1500.0/1000; 
1

는이 같은 문자열을 포맷 할 String.format(...) 방법을 사용할 수 있습니다 :

txtview.setText(String.format("K %f", resultsoldk)); 

그러나, 이것은 당신을 경우 작동하지 않습니다. 두 개의 정수를 나눌 때 결과는 정수가됩니다 (나머지는 없음). 그 다음에는 double로 변환되기 때문에 double로 변환되지만이 시점에서 precision은 이미 손실됩니다. 당신은 적어도 전에 더블 에 정수 중 하나를 변환해야합니다 당신이 그들을 분할 : 당신이 상수

double results = 1500.0/1000; 

또는

를 사용하는 경우,

double results = (double)1500/1000; 

또는

double results = 1500/1000.0; 

또는

double results = 1500.0/1000.0; 
+1

이것은 String.format을 사용하는 방법이 아닙니다. 올바른 방법은'String.format ("K % f", resultsoldk)'바보 같지만 그것이 Sun에서이 방법을 설계 한 방법입니다. – Natix

+0

당신은 절대적으로 옳습니다. 나는 파이썬으로 많은 프로그램을하는데 때로는 약간 혼란 스럽다.) –

0
String strResult = Double.toString(d); 
strResult = strResult.replaceAll("\\d?\\.", ""); 

모르겠지만 얻을 수 있는지 모르겠지만, 원하는 점이 점 다음에 오는 경우이 정규식을 사용할 수 있습니다.

관련 문제