2013-05-15 3 views
5

아래 코드를 사용하여 두 번 숫자를 #. ##으로 포맷하려는 Android 앱을 개발 중입니다. . BMI가 2497.227216676656 경우, 예를 들어, 잘 작동 하드웨어의 언어가 영어 (기본 언어)로 설정되어 테스트하는 동안(안드로이드) decimalformat, "#. ##"로 포맷하는 동안 쉼표를 사용합니다.

Double BMI = ((fWeight)/(dHeight*dHeight)); 
DecimalFormat df = new DecimalFormat("0.00"); 
String sBMI = df.format(BMI); 

, 그것은 2497.23에 sBMI의 형식을하지만, 언어가 프랑스어를 선택한 경우 그것을 포맷 ~ 2497,23. DOT 대신에 COMMA가 사용되어 내 응용 프로그램이 충돌합니다 !!!

왜 그럴까요?

답변

8

이 시도 :

Double BMI = ((fWeight)/(dHeight*dHeight)); 
DecimalFormat df = new DecimalFormat("0.00"); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setDecimalSeparator('.'); 
df.setDecimalFormatSymbols(dfs); 
String sBMI = df.format(BMI); 
+0

작동 중입니다. 즉각적인 응답을 주셔서 감사합니다. – Toral

+0

@Toral, 작동하는 경우 답변을 수락하고 upvote해야합니다. – mike47

0

당신은 올바른 형식을 얻기 위해 공장 정적 메소드가 아닌 생성자를 사용해야합니다.

DecimalFormat df = DecimalFormat.getInstance(Locale.US); 

미국 로캘을 사용하면 모든 서식이 지정된 데이터가 올바른 형식으로 표시됩니다.