爪哇四舍五入到最接近的 .5

2022-09-02 00:19:11

这在Java中怎么可能?

我有一个浮点数,我想把它四舍五入到最接近的.5。

例如:

1.1 应舍入为 1.0

1.3 应舍入为 1.5

2.5 应舍入为 2.5

3.223920 应舍入到 3.0

编辑:另外,我不仅想要字符串表示,我还希望在此之后使用实际的浮点数。


答案 1

@SamiKorhonen评论中这样说:

乘以二,四舍五入,最后除以二

所以这是代码:

public static double roundToHalf(double d) {
    return Math.round(d * 2) / 2.0;
}

public static void main(String[] args) {
    double d1 = roundToHalf(1.1);
    double d2 = roundToHalf(1.3);
    double d3 = roundToHalf(2.5);
    double d4 = roundToHalf(3.223920);
    double d5 = roundToHalf(3);

    System.out.println(d1);
    System.out.println(d2);
    System.out.println(d3);
    System.out.println(d4);
    System.out.println(d5);
}

输出:

1.0
1.5
2.5
3.0
3.0

答案 2

一般的解决方案是

public static double roundToFraction(double x, long fraction) {
    return (double) Math.round(x * fraction) / fraction;
}

在你的情况下,你可以做

double d = roundToFraction(x, 2);

四舍五入到小数点后两位

double d = roundToFraction(x, 100);