• home > webfront > ECMAS > javascript >

    JavaScript获取浮点数整数部分:parseInt vs Math.floor

    Author:zhoulujun Date:

    如何安全获取浮点数的整数部分?推荐使用以下 Math floor() 函数。如果是使用parseInt,会出现 parseInt(0 0000005) === 5

    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