【发布时间】:2019-11-15 10:27:24
【问题描述】:
我有一些 Java 字符串格式为带有 4 位小数的巴西货币,例如:
1.000.000,0000 (1 million)
3,9590 (3 dollar and 9590 cents)
253,8999
10,0000
等等……
我想把它转换成浮点数,这样我就可以用它做一些数学运算了。
如何将字符串转换为保留 4 位小数的浮点数?我尝试了 Float.parseFloat() 方法,但我总是得到 NumberFormatException(可能是因为逗号)。
在网上搜索我只看到想要将 Float 转换为格式化字符串的人。
【问题讨论】:
-
不要使用浮点数进行与金钱相关的计算stackoverflow.com/a/27598164/6207294
-
为防止数字格式异常,可以将“,”替换为“.”和 ”。”和 ””。在将其解析为浮点数之前,这应该会给你一个适当的十进制格式的数字。
-
@ashish2199 请不要那样做,Java 中有很好的 API 可以正确处理数字格式(参见 my answer)。
-
Bigdecimal 用于重大决策