有一個簡單的方法來讀取回來,如果設置的語言使用十進制逗號或小數點?小數點或小數逗號的Android
11
A
回答
14
,我相信我有辦法。我從來沒有用過這個,你要知道,但肯定應該讓你關閉,如果不是有:
NumberFormat nf = NumberFormat.getInstance();
if (nf instanceof DecimalFormat) {
DecimalFormatSymbols sym = ((DecimalFormat) nf).getDecimalFormatSymbols();
char decSeparator = sym.getDecimalSeparator();
}
文檔:
NumberFormat
,DecimalFormat
,DecimalFormatSymbols
根據DecimalFormat的文檔,顯然調用NumberFormat.getInstance()是安全的,但可能會返回DecimalFormat以外的子類(我看到的另一個選項是ChoiceFormat)。我相信大多數情況下它應該是一個DecimalFormat,然後你就可以比較decSeparator
針對,
和.
看到它正在使用的格式。
-1
1
我曾嘗試這一點,它工作得很好......
String osVersion = System.getProperty("os.version");
String PhoneModel = android.os.Build.MODEL;
String locale = this.getResources().getConfiguration().locale.getDisplayCountry();
char decSeparator = '*';
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
decSeparator = dfs.getDecimalSeparator();
String androidVersion = android.os.Build.VERSION.RELEASE;
String prologue = String.format("OS verson = %s PhoneModel = %s locale = %s DecimalFormatSymbol = [%c] androidVersion = %s ",
osVersion ,PhoneModel, locale, decSeparator,androidVersion);
1
你可以使用:
Currency currency = Currency.getInstance(device_locale);
不是使用currency.getSymbol()
的象徵。對於默認設備語言環境,您可以使用:
@TargetApi(Build.VERSION_CODES.N)
public static Locale getCurrentLocale(Context c) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return c.getResources().getConfiguration().getLocales().get(0);
} else {
//noinspection deprecation
return c.getResources().getConfiguration().locale;
}
}
相關問題
- 1. 小數點逗號而不是小數點
- 2. 以逗號掩蓋小數點精度
- 3. NSNumberFormatter在小數點後不加逗號
- 4. PHP逗號和小數點格式
- 5. Oracle SQL - 逗號更改小數點
- 6. Angularjs小數點分隔符逗號
- 7. Javascript Math用逗號代替點/小數
- 8. 彙總節點轉換小數逗號
- 9. NSNumberFormatter和逗號小數點分隔符
- 10. 使用管道打印/角逗號或小數點打點
- 11. Gtk Treestore中的浮點數:小數點逗號/點的i18n
- 12. 有或沒有逗號正則表達式的小數點
- 13. 字符串到浮點轉換,支持小數點和小數點逗號
- 14. H2 csvwrite:如何用小數點(7,2)中的逗號替換小數點 - 列
- 15. 當我用逗號或點分隔小數時掃描加倍
- 16. 替換逗號小數點的數據幀列,使其數字
- 17. 小數點不能用逗號做數學運算。需要點
- 18. Objective c格式浮點數,逗號和小數點後兩位
- 19. 如何用逗號代替小數點解析浮點數?
- 20. NumericUpDown:同時接受逗號和小數點作爲小數點分隔符
- 21. 刪除號碼字段中的逗號和小數點
- 22. 從整數或軌道中的小數中刪除逗號
- 23. jqGrid:以逗號作爲小數點的數字格式
- 24. 格式化逗號和小數點後的數字用Javascript
- 25. Gettext翻譯用數字中的逗號代替小數點
- 26. Java格式帶逗號和2位小數點的BigDecimal數字
- 27. 比較逗號和小數點分隔點(點)
- 28. float.Parse失敗的小數和逗號
- 29. 與逗號後的8位小數
- 30. XmlSerializer用逗號(,)反序列化十進制小數點符號
感謝這個偉大工程 – patrick
我需要投'nf'到''DecimalFormat'((DecimalFormat的)NF).getDecimalFormatSymbols()',非常感謝。 –
謝謝@SelçukChan,我編輯了答案,包括必要的演員! – kcoppock