如何将双倍DOWN舍入到最近的Hundreth

时间:2019-09-13 01:56:09

标签: java variables decimal rounding

我正在尝试编写一个程序,其中将初始双精度乘以0.175后返回一个四舍五入到最接近的百分数的值,例如895 * 0.175 = 156.62,而不是156.625。

2 个答案:

答案 0 :(得分:1)

java.lang.Math.floor向下舍入到最接近的整数。所以:

Math.floor(100 * n) / 100.0;

应该做你想要的。它将数字n乘以100以截断正确的数字,然后除以100.0以撤消原始乘法。可能不是最好的方法,但是下限和乘法/除法很快。

答案 1 :(得分:0)

您可以先将double变量转换为2进制的字符串表示形式,然后将字符串解析回double。

DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.CEILING); //Set to RoundingMode.DOWN to round down
String result = df.format(895 * 0.175);
double product = Double.parseDouble(result);
System.out.println(product);