gpt4 book ai didi

java - 使用 printf 在 java 中格式化输出

转载 作者:行者123 更新时间:2023-11-30 03:43:48 26 4
gpt4 key购买 nike

我有这段代码,我正在尝试格式化输出,如下所示,但是当我启动程序并到达 printf 时,它会停止并给出错误线程“main”中的异常 java.util.IllegalFormatConversionException : f != java.lang.String

variables:    
itemcode=integer
selecteditems=string
perkg=double
userkg=string
quantity-integer
dry=string
total=double

注意:这些是 for 循环中可更改的变量。

System.out.printf("%-4d %-13s %8.2f %8.2f %-8d %-10s %8.2f %n", itemcode,
selecteditems, per_kg, userkg, quantity, dry, total);

最佳答案

您已将userkg定义为字符串,但您试图将其打印为十进制。您需要将变量的类型更改为double

当您定义格式字符串时,您是在告诉 java 您希望变量显示的方式,以及它应该期望的类型

例如,%8.2f 要求您提供一个floatdouble 作为参数。

如果您传入 String 类型的变量,则会收到错误:

例如

float aFloat = 0;
String notAFloat = "";
System.out.printf("%8.2f %8.2f", aFloat, notAFloat);

...给出以下错误:

Exception in thread "main" 
java.util.IllegalFormatConversionException: f != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4045)
at java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2761)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2708)
at java.util.Formatter.format(Formatter.java:2488)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Scratch.main(Scratch.java:9)

关于java - 使用 printf 在 java 中格式化输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26241367/

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