zoukankan      html  css  js  c++  java
  • JS高精度乘法(求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题)

    用到的知识点===> 

    toFixed(num); toFixed() 方法可把 Number 四舍五入为指定小数位数的数字; 参数num: 代表小数位数;

    例:var num = 5.56789; num.toFixed(2); ==>5.57

    parseFloat(string); 函数可解析一个字符串,并返回一个浮点数;参数 string 可为数字可为字符串,当参数为字符串时,判断个字符是否是数字,如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,如果不是,返回NAN;

    例:parseFloat("43ar4s2");==>43    parseFloat("qwar4s2");==>NAN

    三目运算符  ;  

    高精度乘法的一段代码例子:

    function multiply(a, b) {
    // 先将数字转换为字符串
    var str1 = a.toString();
    var str2 = b.toString();
    // 获取两个数的小数位数
    var lenA = (str1.indexOf('.')==-1)?0:(str1.length-str1.indexOf(".")-1);
    var lenB = (str2.indexOf('.')==-1)?0:(str2.length-str2.indexOf(".")-1);
    // 比较两数的精度/位数,精度大的作为结果数精度
    var len = Math.max(lenA,lenB);
    // 运算结果
    var result = parseFloat(a*b).toFixed(len);
    return result
    }
    multiply(4,0.45677);

    ==>1.82708

  • 相关阅读:
    keepalived安装
    Nginx学习笔记
    使用xhprof分析php性能
    使用 .bash_profile与.bashrc修改字符集
    Mysql分区简述
    c语言多线程队列读写
    setsockopt 设置 SO_LINGER 选项
    nginx配置rewrite
    使用PHP+ajax打造聊天室应用
    UDP/TCP通信小记
  • 原文地址:https://www.cnblogs.com/hq-HQ/p/12512000.html
Copyright © 2011-2022 走看看