如何将双倍四舍五入到最接近的整数,然后转换为浮点数?

2022-09-01 12:41:35

我正在使用java.util.Random来生成一个随机高斯。我需要将此高斯转换为浮点值。然而,高斯是双精度的,所以我需要一些方法来舍入,然后将其转换为浮点数。我需要四舍五入到最接近的整数,向上舍入。这是我的问题:如何?


答案 1

float b = (float)Math.ceil(a);float b = (float)Math.round(a);

这取决于您的意思是“舍入到最接近的整数”(舍入)还是“向上舍入”(ceil)。

请注意,在将双精度转换为浮点数时会丢失精度,但这在这里不应该是一个问题。


答案 2

下面是一个简单示例:

public class One {

    /**
     * @param args
     */
    public static void main(String[] args) {

        double a = 4.56777;
        System.out.println( new Float( Math.round(a)) );

    }

}

结果和输出将为:5.0
最接近双精度 a = 4.56777
起始值的上限 Float 在这种情况下,建议使用 round,因为它采用双精度值并提供整个整头值

问候