为什么使用javascript时此公式返回-Infinity
793 * ( 1 - ( 1 + Math.pow(.032 / 12 , (-1 * (30 * 12))))) / (.032 / 12);
答案 0 :(得分:3)
因为这是正确的答案!
Math.pow
部分等效于以下内容:
Math.pow(0.0026666666666666666, -360)
哪个结果为Infinity
然后,将其乘以-1
,然后将其乘以/除以正数,考虑到其为-Infinity
,这不会影响结果。
答案 1 :(得分:2)
其要旨来自Math.pow(.032 / 12 , (-1 * (30 * 12)))
。您要取一个很小的数字(0.032 / 12),并取一个大的负功率(-1 * 30 * 12)。
从数学上讲,这与取一个正常大小的数字并将其取一个大数字相同–您基本上是在计算375**360
,这显然是无穷大。其余的数字最终变成-Infinity
而不是Infinity
。
答案 2 :(得分:1)
根据MDN,
MAX_VALUE属性的值约为1.79E + 308或21024。大于MAX_VALUE的值表示为“无穷大”。
计算的这一部分Math.pow(.032 / 12 , (-1 * (30 * 12)))
等于
4.4797768587048112310581443943723309108149091701091649×10 ^ 926
哪个比Number.MAX_VALUE
大,所以用Infinity
表示。
之后,您基本上只需添加和翻转符号即可。