数字

1. 精度

  • 整数在不使用指数或科学计数法的情况下,会被精确到15位

    var x = 999999999999999;   // x 将是 999999999999999
    var y = 9999999999999999;  // y 将是 10000000000000000
    
  • 小数的最大位数是17位,但浮点的算数并不总是 100% 精准

    var x = 0.2 + 0.1;         // x 将是 0.30000000000000004
    

    如果要规避精度问题,可以使用乘除法

    var x = (0.2 * 10 + 0.1 * 10) / 10;       // x 将是 0.3
    

2. 数字方法

JS数字方法中所有自带的四舍五入都存在一定问题,不可在未经处理的情况下直接使用

toString()

  • toString() 以字符串形式返回数值

    var x = 123;
    x.toString();            // 从变量 x 返回 123
    (123).toString();        // 从文本 123 返回 123
    (100 + 23).toString();   // 从表达式 100 + 23 返回 123
    

toExponential()

  • toExponential() 以字符串形式返回使用指数计数法的数字,且该数字已被四舍五入

    var x = 9.656;
    x.toExponential(2);     // 返回 9.66e+0
    x.toExponential(4);     // 返回 9.6560e+0
    x.toExponential(6);     // 返回 9.656000e+0
    

toFixed()

  • toFixed() 以字符串形式返回指定小数位数的数字,且该数字已被四舍五入

    var x = 9.656;
    x.toFixed(0);           // 返回 10
    x.toFixed(2);           // 返回 9.66
    x.toFixed(4);           // 返回 9.6560
    x.toFixed(6);           // 返回 9.656000
    

toPrecision()

  • toPrecision() 返回字符串值,它包含了指定长度的数字

    var x = 9.656;
    x.toPrecision();        // 返回 9.656
    x.toPrecision(2);       // 返回 9.7
    x.toPrecision(4);       // 返回 9.656
    x.toPrecision(6);       // 返回 9.65600
    

3. 把变量转换为数值

  • 以下三种方法可以将变量转换为数字,这些方法并非数字方法,而是全局 JavaScript 方法。:
    • Number() 方法
    • parseInt() 方法
    • parseFloat() 方法

Number()

  • Number() 可以把变量转换为数值

    x = true;
    Number(x);        // 返回 1
    x = false;     
    Number(x);        // 返回 0
    x = new Date();
    Number(x);        // 返回 1404568027739
    x = "10"
    Number(x);        // 返回 10
    x = "10 20"
    Number(x);        // 返回 NaN
    

parseInt()

  • parseInt() 解析一段字符串并返回数值(整数)

    参数允许空格隔断

    只返回首个参数结果

    parseInt("10");         // 返回 10
    parseInt("10.33");      // 返回 10
    parseInt("10 20 30");   // 返回 10
    parseInt("10 years");   // 返回 10
    parseInt("years 10");   // 返回 NaN
    

parseFloat()

  • parseFloat() 解析一段字符串并返回数值(浮点数)

    参数允许空格隔断

    只返回首个参数结果

    parseFloat("10");        // 返回 10
    parseFloat("10.33");     // 返回 10.33
    parseFloat("10 20 30");  // 返回 10
    parseFloat("10 years");  // 返回 10
    parseFloat("years 10");  // 返回 NaN
    

原文地址:http://www.cnblogs.com/Solitary-Rhyme/p/16849738.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性