两个double变量相乘的结果是零,为什么?
The result of multiplying two double varibles is zero, why?
我在程序中将两个 'double' 变量相乘时遇到问题,得到的结果为零。为什么?
例如:
1.0E-321 * 5.321777473676208E-4 = 0.0
如何防止结果不为零?
double
有一个 minimum value. If you try and store a number smaller than that, you get underflow.
您可以使用 BigDecimal
class.
BigDecimal a = new BigDecimal("1.0E-321");
BigDecimal b = new BigDecimal("5.321777473676208E-4");
System.out.println(a.multiply(b));
Double 有一个最大值和一个最小值(大约在 -1.7*10^308 左右)并且由于你的计算结果接近 5.3 E325 它显示错误你可以尝试先乘以数字然后再乘以指数例如
1*5.32177 然后简单地添加权力 (-321 +(-4)) 这样你就可以得到你的答案。 :)
我在程序中将两个 'double' 变量相乘时遇到问题,得到的结果为零。为什么?
例如:
1.0E-321 * 5.321777473676208E-4 = 0.0
如何防止结果不为零?
double
有一个 minimum value. If you try and store a number smaller than that, you get underflow.
您可以使用 BigDecimal
class.
BigDecimal a = new BigDecimal("1.0E-321");
BigDecimal b = new BigDecimal("5.321777473676208E-4");
System.out.println(a.multiply(b));
Double 有一个最大值和一个最小值(大约在 -1.7*10^308 左右)并且由于你的计算结果接近 5.3 E325 它显示错误你可以尝试先乘以数字然后再乘以指数例如 1*5.32177 然后简单地添加权力 (-321 +(-4)) 这样你就可以得到你的答案。 :)