在我的printf
中,我需要使用%f
,但我不确定如何截断到2位小数:
实施例: 获得
3.14159
打印为:
3.14
答案 0 :(得分:84)
使用此:
printf ("%.2f", 3.14159);
答案 1 :(得分:12)
您可以使用以下内容:
printf("%.2f", number);
如果您需要将字符串用于打印输出以外的其他内容,请使用NumberFormat
类:
NumberFormat formatter = new DecimalFormatter("#.##");
String s = formatter.format(3.14159265); // Creates a string containing "3.14"
答案 2 :(得分:5)
System.out.printf("%.2f", number);
但是,这会将数字四舍五入到你提到的最接近的小数点。(在你的情况下,你将获得3.14,因为舍入3.14159到2小数点将是3.14)
由于函数 printf 会对数字进行舍入,因此其他一些数字的答案可能如下所示,
System.out.printf("%.2f", 3.14136); -> 3.14
System.out.printf("%.2f", 3.14536); -> 3.15
System.out.printf("%.2f", 3.14836); -> 3.15
如果您只需要截断十进制数并将其限制为k
十进制数而不进行舍入,
假设k = 2。
System.out.printf("%.2f", 3.14136 - 0.005); -> 3.14
System.out.printf("%.2f", 3.14536 - 0.005); -> 3.14
System.out.printf("%.2f", 3.14836 - 0.005); -> 3.14
答案 3 :(得分:3)
答案 4 :(得分:3)
如Formatter类中所述,您需要声明精度。在你的情况下%.2f
。
答案 5 :(得分:3)
使用此
printf ("%.2f", 3.14159);
答案 6 :(得分:1)
你可以试试 printf(“%。2f”,[double]);
答案 7 :(得分:0)
我建议用printf学习它,因为在很多情况下,这将足以满足您的需求,您不需要创建其他对象。
double d = 3.14159;
printf ("%.2f", d);
但如果你需要四舍五入,请参阅这篇文章