JavaScript获取浮点数整数部分:parseInt vs Math.floor
Author:zhoulujun Date:
JavaScript浮点数取整,一个会用parseInt,但是,这个有个问题!(Typescript会直接报错,告诉你不能传数字类型)
根据 MDN文档,“parseInt(string, radix) 函数解析字符串参数并返回指定基数(数学数字系统中的基数)的整数。”
parseInt 是如何转换数字的?
当parseInt的第一个参数是一个数字时,它是如何解析的?
将数字转换为字符串
String(0.5); // => '0.5'
String(0.05); // => '0.05'
String(0.005); // => '0.005'
String(0.0005); // => '0.0005'
String(0.00005); // => '0.00005'
String(0.000005); // => '0.000005'
String(0.0000005); // => '5e-7' 请注意这里
做舍入操作
parseInt(0.0000005) -> parseInt('5e-7') => 5
parseInt(99999999999999999999999999)->parseInt('1e+26') => 1
所以, parseInt(0.0000005) === 5
如何安全获取浮点数的整数部分?
推荐使用以下 Math.floor() 函数
内容来源:
为什么 JavaScript 的 parseInt(0.0000005) 打印“5”? https://mdnice.com/writing/bb94b87771bb4c9194b869f3f23ee22c
转载本站文章《JavaScript获取浮点数整数部分:parseInt vs Math.floor》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/js/2022_0720_8870.html