当前位置: 首页 > 知识库问答 >
问题:

DecimalFormat给出了不同的结果在OracleJava1.7和IBMjava 1.6

吕利
2023-03-14

让我们有一个简单的测试代码:

public static void main(String ... arg)
{
    double d = 4000.0;
    DecimalFormat df = new DecimalFormat("#,###.##");
    System.out.println(df.format(d));
}

在Oracle/SUN中,java输出为(带空格):

4.

但在IBM java中,我得到了:

四千

我的java:

java版本“1.7.0_51”java(TM)SE运行时环境(构建1.7.0_51-b13)java热点(TM)64位服务器虚拟机(构建24.51-b03,混合模式)

IBM java:

java版本java版本"1.6.0"Java(TM)SE运行时环境(构建pap6460_26sr7ifix-20131203_01(SR7 IX90131 IV52621))IBMJ9 VM(构建2.6,JRE 1.6.0 AIX ppc64-64压缩引用20131011_170248(启用JIT,启用AOT)J9VM-R26_Java626_SR7_20131011_1221_B170248b05_20131003_47443GC-R26_Java626_SR7_20131011_1221_B170248_CMPRSSJ9CL-20131011_170248)JCL-20131015_01

有人知道这是为什么吗?是因为1.6/1.7的差异吗?或者可能是它的区域设置问题,可能不是。

共有1个答案

黄博艺
2023-03-14

好的,我在这里找到了可能的解决方案,没有用于DecimalFormat的分组分隔符char

它是如此简单:)

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
DecimalFormat df = new DecimalFormat("#,###.##");
df.setDecimalFormatSymbols(symbols);

显然,ibm和oracle使用不同的默认组分隔符。不知道为什么

 类似资料:
  • 我在Cplex中使用Python API来解决一个线性编程问题。使用Cplex时,我的结果如下: 但随后我将LP prolem保存为LP文件,并再次使用Cplex进行求解,结果与第一个略有不同: 下面是我的功能:

  • 我试图通过HTTP向服务器发送一个SHA256哈希字符串,在那里我想通过执行SHA256哈希并验证两个匹配来进行身份验证。出于测试目的,我使用相同的字符串,但是结果不匹配。这可能是我的base64_encode调用的默认编码方案吗?谢谢 在PHP中,我正在做: 我在做什么

  • 问题内容: 我有一个导入一些servlet库的类。当我从命令行编译它时就可以了。 当我使用ant编译任务对其进行编译时,它会给出错误,即在其路径中找不到servlet库。 那是已知/常见的事件吗? 这是我的Ant目标: 问题答案: 如果您没有在任务的类路径中正确指定servlet库,这是一种常见的情况…我怀疑这就是问题所在。如果您发布失败的任务和有效的命令行,我们将为您提供更多帮助。

  • 我已经尝试使用cipher.getinstance(“rsa/ecb/pkcs1padding”),但没有给出预期的结果。 感谢所有的帮助。祝你有美好的一天。

  • 问题内容: 我正在尝试重新实现matlab工具箱之一。他们在那边使用fft。当我对相同的数据执行相同的操作时,我得到的结果与Matlab的结果不同。看看: MATLAB : PYTHON : 如果我弄乱了np.fft.fft()/ np.fft.fft2()/ np.fft.fftn()的参数(轴等),则可以得到的最佳值是相同的,但发生了变化。不幸的是,手动移位不是一种选择,因为Msig矩阵的大小

  • 问题内容: 当我运行此代码时: 我在Eclipse的JUnit运行程序中得到以下结果: 这导致从命令行Maven: 如您所见,时间有所不同。 (同一台计算机,相同的Java版本,可能相隔30秒)。为什么? [编辑] 时区也不同。从Maven 启动和从Eclipse 启动时,为什么要使用Java ? 或换一种说法:如何强制Java使用两者? 问题答案: 要指定默认时区,您可以设置系统属性。您可以通过