gpt4 book ai didi

java - printf 和 String.format 中的空 double 和 float

转载 作者:行者123 更新时间:2023-11-30 06:28:24 27 4
gpt4 key购买 nike

在 Java 中,当我向 printfString.format 提供一个浮点变量时,它什么也没给出。为了说明,一个例子:

public class test {
public static void main(String arg[]) {
double d = 123.456;
System.out.println("println: " + d + " " + (int) d);
System.out.printf("printf as int: %d%n", (int) d);
System.out.printf("printf with %%f: %f%n", d);
System.out.printf("printf with %%e: %e%n", d);
System.out.printf("printf with %%g: %g%n", d);
System.out.printf("printf with %%a: %a%n", d);
}
}

给予

in println: 123.456 123
in printf as int: 123
in printf with %f:
in printf with %e:
in printf with %g:
in printf with %a:

如您所见,它确实适用于 println,但它在 printf 上失败。 String.format 也是如此。如果我提供宽度和精度,它也会执行相同的操作 - 什么都不提供。

我做错了什么?

编辑:我正在使用 en_US.UTF-8 语言环境;我不确定我使用的是哪个版本的 Java。我所知道的是:我用 gcc (gcj) 编译它,版本 4.7.2;并安装了 gcj JRE 4.7.2 版和 OpenJDK JRE 7u7-2.3.2a 版。;编辑了代码。现在是程序的全部代码。在我注意到其他代码中的 float 问题后,我将其编写为一个小测试程序。

最佳答案

这很可能是 GCJ 中的错误。看这里:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561685

摆脱 GCJ 并使用 OpenJDK 或 Sun/OracleJDK。

关于java - printf 和 String.format 中的空 double 和 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com