printf%f小数点后只有2个数字?

jma*_*erx 50 java

在我printf,我需要使用,%f但我不知道如何截断到2位小数:

示例:获取

3.14159

打印为:

3.14

Kev*_*vin 87

用这个:

printf ("%.2f", 3.14159);
Run Code Online (Sandbox Code Playgroud)

  • 应该注意的是,这实际上是对数字进行舍入,它不仅仅是将其切断. (14认同)

Ale*_*ing 13

你可以使用这样的东西:

printf("%.2f", number);
Run Code Online (Sandbox Code Playgroud)

如果您需要将字符串用于打印输出以外的其他内容,请使用以下NumberFormat类:

NumberFormat formatter = new DecimalFormatter("#.##");
String s = formatter.format(3.14159265); // Creates a string containing "3.14"
Run Code Online (Sandbox Code Playgroud)

  • 或者`String s = String.format("%.2f",number)'. (5认同)

Bil*_*ill 5

尝试:

printf("%.2f", 3.14159);

参考:

http://www.cplusplus.com/reference/clibrary/cstdio/printf/


pri*_*ime 5

System.out.printf("%.2f", number);
Run Code Online (Sandbox Code Playgroud)

但是,这会将数字四舍五入到您提到的最接近的小数点(因为在这种情况下,您将获得3.14,因为将3.14159四舍五入为小数点将为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
Run Code Online (Sandbox Code Playgroud)

如果您只需要截取十进制数字并将其限制为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
Run Code Online (Sandbox Code Playgroud)