printf%f在小数点后面只有两个数字?

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

例如:获得

3.14159

打印为:

3.14

用这个:

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

你可以使用这样的东西:

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

如果您需要将string用于除打印之外的其他内容,请使用NumberFormat类:

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

尝试:

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

参考:

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

如Formatter类中所述,您需要声明精度。 %.2f在你的情况。

用这个

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

你可以试试printf(“%2f”,[double]);

我build议用printf来学习它,因为在很多情况下,这将足以满足您的需求,您不需要创build其他对象。

 double d = 3.14159; printf ("%.2f", d); 

但是,如果你需要四舍五入请参考这篇文章

https://stackoverflow.com/a/153785/2815227

 System.out.printf("%.2f", number); 

但是 ,这会将数字四舍五入到您刚刚提到的最接近的小数点(就像您的情况一样,您将得到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 

如果您只需要中断十进制数并将其限制为不带四舍五入的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