我似乎无法弄清楚为什么当我尝试将数字减少到第二个小数点时,同时在其后加一个“ $ ” 时,为什么此代码始终给我与格式化相关的错误。
Scanner scan = new Scanner(System.in);
int months = scan.nextInt();
int waterPrice = 20;
int internetPrice = 15;
int water = months * waterPrice;
int internet = months * internetPrice;
double others = 0;
double electricity = 0;
double electricityPrice;
for(int i=0; i<months; i++){
electricityPrice = scan.nextDouble();
electricity += electricityPrice;
others = (electricity + water + internet) + 0.2 * (electricity + water + internet);
}
double avarage = (electricity + water + internet + others)/5;
System.out.println("Electricity: %.2f$$"+ electricity);
System.out.printf("Water: %.2d$$", water);
System.out.printf("Internet: %.2d$$", internet);
System.out.printf("Other: %.2f$$", others);
System.out.printf("Average: %.2f$$", avarage);
尝试:
System.out.format("Electricity: %.2f $$\n", 234.5554);
要么
System.out.printf("Electricity: %.2f $$\n", 234.5554);
输出:
在您的情况下:
System.out.printf("Electricity: %.2f$$\n", electricity);
System.out.printf("Water: %d$$\n", water);
System.out.printf("Internet: %d$$\n", internet);
System.out.printf("Other: %.2f$$\n", others);
System.out.printf("Average: %.2f$$\n", avarage);
输出:
注:在你的情况我已经更换%.2d
用%d
,因为water
和internet
是integer
类型。如果你想小数精度为所有IE 100.00 $$
,那么你需要更换int
与double
和使用System.out.printf(%.2f$$\n)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句