gpt4 book ai didi

java - printf 标志显示不正确?

转载 作者:行者123 更新时间:2023-12-01 04:17:12 25 4
gpt4 key购买 nike

我的 AP 书说,如果你把“$”放在 % 之前,它将输出前面有“$”的任何值,据我所知,这被称为标志。然而,当我这样做时,我得到了一些不同的东西,例如:

public void printResults(){
System.out.printf("%10s %10s %10s \n", "Item:", "Cost:", "Price:");
System.out.printf("%10d $%10.2f %10.2f \n", n++ ,productOne, productOne);
System.out.printf("%10d $%10.2f %10.2f \n", n++ ,productTwo, productTwo+=productOne);
System.out.printf("%10d $%10.2f %10.2f", n++ ,productThree, productThree+=productTwo);
}

输出:

 Item:      Cost:     Price: 
1 $ 5.00 5.00
2 $ 5.00 10.00
3 $ 5.00 15.00

而不是:

 Item:      Cost:     Price: 
1 $5.00 5.00
2 $5.00 10.00
3 $5.00 15.00

为什么“$”应该位于我的每个值的开头,但它却向左移动了这么多字符?

最佳答案

当您的格式为:%10.2f 时,您指定的总长度为 10,并且您的 $ 字符位于格式化数字之前。所以你得到了

"$" + "      5.00"

您可以使用 DecimalFormat 来解决此问题:

DecimalFormat df = new DecimalFormat("$#.00");
String s = df.format(productOne);

及以后

System.out.printf("%10s \n");

输出:

     $5.00

关于java - printf 标志显示不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326390/

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