使用 Math.round 将舍入到小数点后一位?

2022-08-31 23:44:36

我有这两个变量

double num = 540.512
double sum = 1978.8

然后我做了这个表达

double total = Math.round((num/ sum * 100) * 10) / 10;

但我最终得到了27.0。

事实上,我还有许多其他变量,当我在表达式中使用它们时,我总是在十分之一的位置得到0。


答案 1

我不久前创建的有用方法...

private static double round (double value, int precision) {
    int scale = (int) Math.pow(10, precision);
    return (double) Math.round(value * scale) / scale;
}

答案 2

试试这个

例如

DecimalFormat df = new DecimalFormat("#.##");
df.format(55.544545);

输出:

55.54