【发布时间】:2018-08-31 22:21:18
【问题描述】:
我有一个从字符串值中删除小数位的小疯狂方法。
private double getDoubleFromString(final String value) throws ParseException {
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
Number number = format.parse(value);
return number.doubleValue();
}
如果本地语言是'en',它会产生不带逗号的值(,)逗号。
例如:
xx,x
result is xxx.
74,5 --> 745 (problem facing in this format)
74.5 --> 74.5 (working fine it string has dot)
我确实需要分隔符是一个点或一个点和一个逗号以及值字符串。有人知道如何完成这个小壮举吗?
【问题讨论】:
-
您是否尝试过使用替换并替换所有“,”和“。”用“”?
-
在处理字符串之前将所有逗号替换为点。或者使用自定义语言环境,而不是
Locale.getDefault(),因为语言环境是定义小数点分隔符的那个 -
@Antonio 我尝试将 , 替换为 .在 NumberFomat 之前它仍然无法正常工作。
-
@VladyslavMatviienko 我必须支持数字格式的本地化。如果值是 74.5,它应该是所有语言的 74.5 / 74,5。这是一个值,而不是一个更独立的值。
标签: android localization decimal number-formatting