让我们有一个简单的测试代码:
public static void main(String ... arg)
{
double d = 4000.0;
DecimalFormat df = new DecimalFormat("#,###.##");
System.out.println(df.format(d));
}
在Oracle / SUN中,java输出为(带空格):
4000
但是在IBM Java中,我得到了:
4,000
我的java:
Java版本“ 1.7.0_51” Java™SE运行时环境(内部版本1.7.0_51-b13)Java HotSpot(TM)64位服务器VM(内部版本24.51-b03,混合模式)
IBM Java:
java -version Java版本“ 1.6.0” Java SE运行时环境(内部版本pap6460_26sr7ifix-20131203_01(SR7 + IX90131 + IV52621))IBM J9 VM(内部版本2.6,JRE 1.6.0 AIX ppc64-64压缩参考20131011_170248(JIT已启用,已启用AOT)J9VM-R26_Java626_SR7_20131011_1221_B170248 JIT-r11.b05_20131003_47443 GC-R26_Java626_SR7_20131011_1221_B170248_CMPRSS J9CL-20131011_170248)JCL-20131015_01
有人知道这是为什么吗?是因为1.6 / 1.7的差异?也许它的语言环境问题,也许不是。
好的,我在这里找到可能的解决方案DecimalFormat没有分组分隔符char
它是如此简单:)
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
DecimalFormat df = new DecimalFormat("#,###.##");
df.setDecimalFormatSymbols(symbols);
显然,ibm和oracle使用不同的默认组分隔符。邓诺为什么
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句