首页 > 解决方案 > 使用java的小数问题

问题描述

当我在我的函数中传递这些值时,我正在四舍五入一些值round(),在我使用Math.powMath.round实现的圆形函数中:

round(x,2);

round(xx,2);

float x =4.68;
float xx = 4.00;

after my round off function

public static Float round(Float value, int places) {
        if (value != null) {
            Float scale = (float) Math.pow(10, places);
            return (Float) (Math.round(value * scale) / scale);
        }
        return value;
    }
Output Coming:
x = 4.7
x = 4

expected Output is or REQUIREMENT IS:
x-->4.70
x-->4.00

标签: javaspringtypesprecisionprimitive-types

解决方案


如果您调用函数 round(x,2),则意味着您希望输出一个四舍五入到小数点后 2 位的数字。不管是 4.7 还是 4.70000。这仍然是相同的数字。

我认为您的问题是关于格式化输出以进行打印。在这种情况下,您可以使用如下简单代码:

    float x =4.68;
    float xx = 4.00;
    System.out.printf("%.2f", x);
    System.out.printf("%.2f", xx);

推荐阅读