与BigDecimal的JRE1.7问题

时间:2012-11-26 12:05:00

标签: java java-7

我正在使用JRE1.7更新9,在我的应用程序中,我将数值从BigDecimal转换为字符串。我将我的语言环境设置保留为法语(比利时),并使用默认的其他设置。 我正面临将此bigdecimal转换为字符串的问题。当我点击金额字段时,它会被多达100并显示为100的倍数值,例如。如果我将值设置为52.00,那么它会修改此值并将其显示为5200.只有此区域设置才会出现问题。使用JRE 1.6检查相同的方案,但是对于此Locale没有这样的问题。只有这个JRE1.7对这个特定的Locale有问题。此外,我没有得到任何例外情况。

2 个答案:

答案 0 :(得分:3)

Belgian/French locale .(句号)中是一个组分隔符,,(逗号)是小数点分隔符。

换句话说,52.00实际上是5200,而52,00是52。

答案 1 :(得分:1)

您好EveryOne我找到了解决此问题的方法。由于Locale.getDefault()的更改,此问题来自Oracle。由于此更改,即使我们选择任何其他Locale,默认区域设置也会设置为en_US。有关Oracle bugdatabase中此问题的更多信息,请参阅此链接。此问题仅适用于JRE1.7而不适用于JRE1.6

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073906

谢谢。