Java 数字格式 - #.## - Windows 和 Linux
Posted
技术标签:
【中文标题】Java 数字格式 - #.## - Windows 和 Linux【英文标题】:Java number format - #.## - Windows and Linux 【发布时间】:2011-10-04 03:59:10 【问题描述】:我正在使用以下代码来格式化双数
DecimalFormat decimalFormat=new DecimalFormat("#.##");
decimalFormat.format(1.04)
但这给了
java.lang.NumberFormatException: For input string: "1,04"
在 Linux 中 - 但在 Windows 7 中这可以正常工作,如何纠正这个问题?
【问题讨论】:
您确定异常是由对format
的调用产生的吗?它看起来像是一条来自尝试解析而不是格式化的消息。
这在 Windows 或 Linux 之间应该无关紧要 .. 并且 1.04 是一个有效的十进制值,因此异常看起来不正确
英语语言环境中的有效小数:)
Double.valueOf(decimalFormat.format(1.04));这给出了例外
@buddhi - 你的区域设置是什么?
【参考方案1】:
这里似乎回答了一个非常相似的问题 (DecimalFormat and Double.valueOf()) 关于 java 数字格式。基本上,您遇到的差异可能与 Windows 上定义的区域设置与 Linux 不同(例如:在 Windows 上,您将其配置为与 linux 不同的国家/语言)。
【讨论】:
我不知道您使用的是什么发行版,但我会给您提供可能与您现在使用的相似或相同的 Ubuntu wiki 说明:help.ubuntu.com/community/Locale 确保所有区域设置相关变量定义正确。但也要看看链接上的建议,因为它似乎更有可能是永久修复) 您在 W7 和 Linux 中使用相同的语言环境吗?以上是关于Java 数字格式 - #.## - Windows 和 Linux的主要内容,如果未能解决你的问题,请参考以下文章