Java将22乘360除以2的31次方,结果是0。可是为什么计算器算出来的不是0,请给出解释。以及如何才能将java算出的结果等于计算器算出的结果
时间: 2024-01-21 19:17:08 浏览: 21
Java将22乘360除以2的31次方的结果为0是因为Java中的整数类型是有符号的32位二进制数,它的取值范围是-2的31次方到2的31次方减1。当计算22乘360除以2的31次方时,计算结果等于0,但是这个计算结果只是在Java的整数类型范围内的结果,而计算器可以使用更高精度的计算,所以计算器可能会得到非零的结果。
如果想让Java算出的结果等于计算器算出的结果,可以使用Java中的浮点数类型,例如使用double类型进行计算。这是因为double类型可以表示更大的数值范围和更高的精度。具体的计算代码如下:
```
double result = 22 * 360 / Math.pow(2, 31);
System.out.println(result); // 输出非零结果
```
需要注意的是,使用浮点数类型进行计算可能会存在舍入误差,所以在实际应用中需要谨慎处理。
相关问题
Java中将121200000乘0.000001除360乘2的31次方,给出代码运算过程以及结果
代码运算过程如下:
```
long result = (long)((121200000 * 0.000001) / 360 * Math.pow(2, 31));
System.out.println(result);
```
解释一下计算过程:
1. 121200000乘0.000001等于0.1212
2. 0.1212除以360等于0.0003366666666666667
3. 将0.0003366666666666667乘以2的31次方等于1449556.65536
4. 因为要将结果存储在long类型中,所以将小数点后面的数舍去,得到1449556
因此,代码的运行结果为1449556。
Java中将121200000乘0.000001除360乘2的三一次方,给出代码运算过程以及结果
Java中将121200000乘0.000001除360乘2的三次方,可以使用Math类中的pow方法来实现。具体代码如下:
```
double result = Math.pow(121200000 * 0.000001 / (360 * 2), 3);
System.out.println(result);
```
运算过程如下:
首先计算121200000乘0.000001得到0.1212,然后除以360乘2,得到0.00016833333,再将其三次方,得到0.00000000000000465144。
最终结果为:0.00000000000000465144。