如何四舍五入到小数点后第二位5

问题描述 投票:1回答:2

我需要制作一个程序,将小数点后第二位四舍五入到最接近的5位,例如13.14到13.15。我到处都在寻找如何使用math.round()命令,但找不到它。十进制格式同样适用,因为无论如何我都必须将值更改为字符串。

java math decimal rounding decimalformat
2个回答
1
投票

舍入到0.05等于舍入到最接近的1/20。要四舍五入到任何1 / n,只需乘以n,四舍五入为整数,然后除以n(非整数除法)。 Math.round(x * 20.0) / 20.0之类的东西似乎足够。

编辑:如果对结果进行精确舍入很重要,则您可能希望尝试对java.math.BigDecimal实例或其他一些十进制实现进行最终除法。


-2
投票

你去。从位置提取小数,然后将其加回到DecimalFormat

import java.text.DecimalFormat;

public class decimals {
    public static void main(String args[]) {

        double num = 12.39;
        DecimalFormat df2 = new DecimalFormat("#.#");
        int secondDecimal = (int) (Math.abs(num) * Math.pow(10, 2)) % 10;
        System.out.println(df2.format(num)+round(secondDecimal));
    }

    public static String round(int num) {

        if (num <= 5) {
            return "5";
        } else {
            return "0";
        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.