【发布时间】:2016-02-02 05:17:44
【问题描述】:
当西班牙的小数点分隔符以逗号 , 显示时,我在格式化十进制值以在西班牙语(以及其他欧洲语言)中进行本地化时遇到问题。
如何获得小数点分隔符为点.?
这是我用来格式化十进制数的代码
DecimalFormat twoDecimalForm = null;
twoDecimalForm = new DecimalFormat("#.##");
DecimalFormatSymbols.getInstance().setDecimalSeparator('.');
String valueInDecimal = twoDecimalForm.format(0.005 * progressValue);
//Exception here
Log.d(TAG,"valueInDecimal" + Double.valueOf(valueInDecimal));
我得到的是逗号 , 而不是点 .
解决方法可以将逗号替换为.。
但是还有其他解决方案吗?
【问题讨论】:
-
许多国家/地区使用逗号作为小数分隔符,因此最好只允许这样做:docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html
-
@KenWolf 我在返回
java.lang.NumberFormatException: Invalid double: -
简单,不要转换为数字:
Log.d(TAG,"valueInDecimal = " + valueInDecimal.replace(",", "."); -
你在开玩笑......你做数学运算,比如 Double c = Double a (= 8.97) * Double b (= 1.5)。结果:c = 13.455 然后将 c 转换为字符串并显示它用点替换逗号。什么东西这么难理解?
-
@FrankN.Stein Cool :)。谢谢。现在正在做同样的事情。
标签: android parsing decimalformat decimal-point