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"
如Formatter类中所述,您需要声明精度。 %.2f
在你的情况。
用这个
printf ("%.2f", 3.14159);
你可以试试printf(“%2f”,[double]);
我build议用printf来学习它,因为在很多情况下,这将足以满足您的需求,您不需要创build其他对象。
double d = 3.14159; printf ("%.2f", d);
但是,如果你需要四舍五入请参考这篇文章
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