1

我正在使用 JRE1.7 update 9,在我的应用程序中,我将金额值从 BigDecimal 转换为字符串。我将语言环境设置保留为法语(比利时),并使用默认的附加设置。我在将这个 bigdecimal 转换为字符串时遇到了问题。当我单击金额字段时,它被乘以 100 并以 100 的倍数显示值,例如。如果我将值设置为 52.00,那么它会修改此值并将其显示为 5200。只有此语言环境存在问题。使用 JRE 1.6 检查相同的场景,但对于此区域设置没有这样的问题。只有这个 JRE1.7 对这个特定的语言环境有问题。此外,对于这种情况,我也没有得到任何例外。

4

2 回答 2

3

比利时/法语语言环境 .中,(句点)是组分隔符,,(逗号)是小数分隔符。

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

于 2012-11-26T12:27:26.030 回答
1

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

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

谢谢你。

于 2012-11-27T13:05:20.453 回答