Javascript 为什么parseInt(无穷大)返回NaN,而parseFloat(无穷大)返回无穷大?
是什么原因使这两个函数在值无穷大和-无穷大时表现不同。有人发现这种不一致性有用吗Javascript 为什么parseInt(无穷大)返回NaN,而parseFloat(无穷大)返回无穷大?,javascript,type-conversion,nan,infinity,Javascript,Type Conversion,Nan,Infinity,是什么原因使这两个函数在值无穷大和-无穷大时表现不同。有人发现这种不一致性有用吗 parseInt(Infinity); // NaN parseFloat(Infinity); // Infinity 这一问题的答案在两个功能的规范中是正确的: 接受字符串参数 如果第一个字符无法转换为数字,则parseInt返回NaN parseFloat还可以解析并返回无穷大的值。可以使用isFinite函数确定结果是否为有限数(不是无穷大、无穷大或NaN) parseInt无法返回infinity,因
parseInt(Infinity); // NaN
parseFloat(Infinity); // Infinity
这一问题的答案在两个功能的规范中是正确的: 接受字符串参数 如果第一个字符无法转换为数字,则parseInt返回NaN parseFloat还可以解析并返回无穷大的值。可以使用isFinite函数确定结果是否为有限数(不是无穷大、无穷大或NaN)
parseInt
无法返回infinity
,因为infinity
不在JavaScript的整数范围内。而它是浮点范围内的有效值
至于有用吗?我不能说。在我工作的领域中,
NaN
表示发生了错误,我不相信我曾经使用过无限
,使用字符串参数,并且不能转换为数字,
不一定是正确的解释Number('Infinity')
是一个表示无限的数字,parseFloat
还接受字符串parseFloat('Infinity')
。和Infinity.toString()
将导致“无穷大”
,因此parseInt(无穷大)
将导致parseInt(“无穷大”)
。无穷大不在JavaScript的整数范围内。为什么?像8888888888888888888888888888888888888888888888888888888889889999999999999999999这样的数字应该是无穷大,对吗?@Devashish JS中的最大安全整数是9007199254740991
,上面的一切都是浮点精度@t、 侄女有时JS的行为简直令人难以置信。谢谢:)@Devashish这在其他语言中不会有什么不同。像整数这样的非浮点数不能表示无穷大,所以如果您请求一个整数,就不能得到无穷大。