我需要在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应用程序中尝试这个简单的计算:
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.
这里出了什么问题?
我正在尝试计算(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
这是为什么?我做了一些非常愚蠢的事情,还是有充分理由这样做