小编mac*_*rre的帖子

为什么在一种情况下乘以大数会给出错误的结果?

这可能看起来很简单,但我没有任何答案。当我写:

 System.out.println (100 * 1000 * 10000 * 100000);
 System.out.println (100 * 1000 * 10000 * 100000.0);
Run Code Online (Sandbox Code Playgroud)

它返回这些值:

276447232
1.0E14
Run Code Online (Sandbox Code Playgroud)

我知道这与某些数据类型的最大值有关。但我只想明确回答为什么它为两个方程返回这些确切值。如果有人可以向我解释这一点,我将不胜感激。

第一个返回值与 int 数据类型的最大值不匹配,这就是我感到困惑的原因。我假设的第二个返回值是双精度值或浮点值,但我不确定。

java int primitive multiplication

2
推荐指数
1
解决办法
814
查看次数

while循环中两个条件之间的差异

我对我的代码有疑问.我知道我的代码中需要更改的内容,但我想了解为什么会发生这种情况,因为我真的想学习基础知识.所以我的代码是:

public class chunnimunni {
    public static void main(String[] args) {
         double number = 2.0;
         while (true) {
             if (number == 0.5)
                 break;
             number -= 0.1;
             System.out.printf("%8.1f", number);
         }
         System.out.println ("Finished.");
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码将继续并无限期地打印出数字,它不会停在0.5.但是,如果我更改while条件:

while (true)
Run Code Online (Sandbox Code Playgroud)

while (number > 0.5)
Run Code Online (Sandbox Code Playgroud)

然后它工作.

如果有人能解释原因,我会非常高兴.谢谢.

java while-loop conditional-statements

2
推荐指数
1
解决办法
98
查看次数