在 java 中截断浮点数和双精度
2022-09-04 05:49:23
我想在java中截断一个浮点数和一个双精度值。
以下是我的要求:1.如果我有12.49688f,它应该打印为12.49而不舍入2。如果它是双精度的12.456,则应打印为12.45而不舍入3。在任何情况下,如果值类似于 12.0,则只应将其打印为 12。
条件3应始终牢记在心。它应该与截断逻辑并发。
我想在java中截断一个浮点数和一个双精度值。
以下是我的要求:1.如果我有12.49688f,它应该打印为12.49而不舍入2。如果它是双精度的12.456,则应打印为12.45而不舍入3。在任何情况下,如果值类似于 12.0,则只应将其打印为 12。
条件3应始终牢记在心。它应该与截断逻辑并发。
试试这个-
DecimalFormat df = new DecimalFormat("##.##");
df.setRoundingMode(RoundingMode.DOWN);
System.out.println(df.format(12.49688f));
System.out.println(df.format(12.456));
System.out.println(df.format(12.0));
在这里,我们使用十进制格式化程序进行格式化。舍入模式设置为 DOWN,因此它不会自动舍入小数位。
预期结果是:
12.49
12.45
12
double d = <some-value>;
System.out.println(String.format("%.2f", d - 0.005);