我想打印一个小数点后只有2位数的数字,并打印一个带有数字固定点的语句。我尝试这样做的方法是输入:
System.out.printf("You can take a trip. %s money left.",money);
但我不知道在哪里放置另一个修饰符是"%。2f"。 我试过了:
System.out.printf("%.2f","You can take a trip. %s money left.",money);
但它不起作用。非常感谢您的帮助。
答案 0 :(得分:1)
此格式的输出会将您的货币值放在15个空格的字段中,并保留两位小数,因此该数字会有一个固定的点:
System.out.printf("You can take a trip. %15.2f money left.", money);
答案 1 :(得分:0)
System.out.printf("You can take a trip. %.2f money left.", money);
%s
格式说明符将相应的值格式化为字符串;由于您尝试打印浮点值,因此需要使用%f
。 .2
元素指定应打印小数点后的位数。
来源:
答案 2 :(得分:0)
如果需要将两个不同的浮点值传递给System.out.printf()
,则可以将这两个值作为该方法的参数传递(但使用%f
代替%s
,因为%s
用于字符串而不用于浮点:
float firstMoney = 1000.0f;
float secondMoney = 5.0f;
System.out.printf("%.2f. You can take a trip. %.2f money left.", firstMoney, secondMoney);
你得到的输出:
1000,00. You can take a trip. 5,00 money left.
如果这两个值的源都是同一个变量,你可以稍微更改一下代码,让System.out.printf()
知道,你想要将同一个参数传递给两个格式说明符(你需要使用{ {1}}承认,对于你想要使用列表中的第一个参数(如果你不这样做,方法,默认情况下查找列表中的第二个参数,这是不存在的。例如:
1$
输出:
float firstMoney = 1000.0f;
System.out.printf("%1$.2f. You can take a trip. %1$.2f money left.", firstMoney, secondMoney);
您还可以替换传递给该方法的值的顺序:
1000,00. You can take a trip. 1000,00 money left.
输出:
float firstMoney = 1000.0f;
float secondMoney = 5.0f;
System.out.printf("%2$.2f. You can take a trip. %1$.2f money left.", firstMoney, secondMoney);
有关其他信息,如何使用格式说明符,您可能需要查看此处: https://docs.oracle.com/javase/tutorial/essential/io/formatting.html