2011-07-29 7 views
2

로캘에서 사용하는 적절한 표기법으로 내 번호를 반환하려면 아래 코드를 사용하고 있습니다. 예를 들어 유럽 서식에서는 부동 소수점/복식을 나타내는 십진수가 아닌 쉼표가 사용됩니다. 장치에서 테스트하는 동안이 코드는 작동하지만 Droid X에서는 작동하지 않습니다. (그래서 나는 얼마나 많은 다른 전화기가이 카드에서 발생할 수 있는지 궁금합니다.) 누구든지이 문제를 겪고 있거나 해결책이있을 수 있습니까? 내가 그것을 알아 냈다고 생각다른 Android 장치에서 일치하지 않는 코드가 반환됩니다.

/** 
* <p>Converts doubles to twoDecimal points with proper notation per locale</p> 
* 
* @param double 
* @return converted number to 2 decimal points with proper notation 
*/ 
public static String getFormattedValue(double d) { 
    Locale mLocale = getResources().getConfiguration().locale; 

    String formattedString; 
    NumberFormat nf = NumberFormat.getNumberInstance(mLocale); 
    DecimalFormat df = (DecimalFormat)nf; 
    df.applyPattern("###,###.##"); 

    formattedString = df.format(d); 

    return formattedString; 
} 
+2

"[코드가 Droid X에서 작동하지 않습니다.]"라는 의미는 무엇입니까? 코드가 작동 할 때'mLocale'은 무엇입니까? "작동하지 않습니까?" –

+0

Droid X에서 전화 언어가 스페인어로 설정되어 있으면 위의 코드는 숫자 (쉼표 소수점 이하)에 적절한 표기법을 반환하지 않습니다. 내 응용 프로그램의 외부에서 전화는 "설정"으로 들어가서 응용 프로그램 크기를 보면 표시되는 십진수가 아닌 쉼표를 사용하지 않습니다. Nexus 1은 두 경우 모두 10 진수가 아닌 쉼표를 표시합니다. 내 게시물을 업데이트하고 이미지를 포함합니다. – taraloca

답변

0

: 여기

는 코드입니다. 내 휴대 전화의 로켈 (언어)가 스페인어로 설정되어 소수를 표시하면 로켈은 실제로 스페인어 (미국)입니다. 쉼표가 표시되면 유럽 스페인어입니다. My Droid X는 영어 또는 스페인어를 표시하지만 Nexus 1에는 Espanol (Espana) 및 Espanol (Estados Unidos)가 있습니다.

관련 문제