相关疑难解决方法(0)

浮点算法不能产生精确的结果

我需要在Java中进行一些浮点运算,如下面的代码所示:

public class TestMain {
    private static Map<Integer, Double> ccc = new HashMap<Integer, Double>() {
      { put(1, 0.01); put(2, 0.02); put(3, 0.05); put(4, 0.1); put(6, 0.2);
        put(10, 0.5); put(20, 1.0); put(30, 2.0); put(50, 5.0); put(100, 10.0);
      }
    };

    Double increment(Double i, boolean up) {
        Double inc = null;

        while (inc == null) {
            inc = ccc.get(i.intValue());

            if (up)
                --i;
            else
                ++i;
        }
        return inc;
    }

    public static void main(String[] args) {
        TestMain tt = new TestMain();

        for (double i = …
Run Code Online (Sandbox Code Playgroud)

java floating-point

31
推荐指数
2
解决办法
3万
查看次数

Java中的简单划分 - 这是一个错误还是一个功能?

我正在Java应用程序中尝试这个简单的计算:

System.out.println("b=" + (1 - 7 / 10));
Run Code Online (Sandbox Code Playgroud)

显然我想要b=0.3输出,但这就是我得到的b=1.

什么?!为什么会这样?

如果我做:

System.out.println("b=" + (1 - 0.7));
Run Code Online (Sandbox Code Playgroud)

我得到了正确的结果b=0.3.

这里出了什么问题?

java division

16
推荐指数
3
解决办法
17万
查看次数

为什么(360/24)/ 60 = 0 ...在Java中

我正在尝试计算(360/24)/ 60当我得到0.25时,我一直得到答案0.0

用语言:我想将360除以24,然后将结果除以60

public class Divide {

    public static void main(String[] args){
      float div = ((360 / 24) / 60);
      System.out.println(div);

    }
}
Run Code Online (Sandbox Code Playgroud)

打印出:

0.0

这是为什么?我做了一些非常愚蠢的事情,还是有充分理由这样做

java floating-point division

14
推荐指数
2
解决办法
8089
查看次数

标签 统计

java ×3

division ×2

floating-point ×2