zoukankan      html  css  js  c++  java
  • js处理科学计数法

    本文转载至:原文链接

    function toolNumber(num_str) {
             num_str = num_str.toString();
             if (num_str.indexOf("+") != -1) {
               num_str = num_str.replace("+", "");
             }
             if (num_str.indexOf("E") != -1 || num_str.indexOf("e") != -1) {
                   var resValue = "",
                power = "",
                result = null,
                dotIndex = 0,
                resArr = [],
                sym = "";
                   var numStr = num_str.toString();
                   if (numStr[0] == "-") {
                    //如果为负数,转成正数处理,先去掉‘-’号,并保存‘-’.
                     numStr = numStr.substr(1);
                     sym = "-";
                   }
                   if (numStr.indexOf("E") != -1 || numStr.indexOf("e") != -1) {
                     var regExp = new RegExp(
                       "^(((\d+.?\d+)|(\d+))[Ee]{1}((-(\d+))|(\d+)))$",
                       "ig"
                );
                result = regExp.exec(numStr);
                if (result != null) {
                    resValue = result[2];
                       power = result[5];
                       result = null;
                }
                if (!resValue && !power) {
                    return false;
                }
                dotIndex = resValue.indexOf(".") == -1 ? 0 : resValue.indexOf(".");
                resValue = resValue.replace(".", "");
                resArr = resValue.split("");
                if (Number(power) >= 0) {
                    var subres = resValue.substr(dotIndex);
                       power = Number(power);
                       //幂数大于小数点后面的数字位数时,后面加0
                       for (var i = 0; i <= power - subres.length; i++) {
                         resArr.push("0");
                       }
                       if (power - subres.length < 0) {
                         resArr.splice(dotIndex + power, 0, ".");
                       }
                 } else {
                     power = power.replace("-", "");
                       power = Number(power);
                       //幂数大于等于 小数点的index位置, 前面加0
                       for (var i = 0; i < power - dotIndex; i++) {
                         resArr.unshift("0");
                       }
                    var n = power - dotIndex >= 0 ? 1 : -(power - dotIndex);
                    resArr.splice(n, 0, ".");
                }
            }
                resValue = resArr.join("");
                   return sym + resValue;
            } else {
                   return num_str;
            }
        }
  • 相关阅读:
    Docker配置samba共享
    阿里云SSL 免费证书申请方法
    linux centos7 关闭防火墙的方法
    PHP 面向对象的特性 抽象类和接口
    详解mixphp的依赖注入控制反转
    swoole mixphp swoolefor热更新使用方法
    nginx ab并发测试 apr_socket_recv: Connection refused (111
    PHP golang java 并发测试
    php.ini 添加的模块没更新的解决方法
    关于golang的未来的道路
  • 原文地址:https://www.cnblogs.com/hnzkljq/p/11525883.html
Copyright © 2011-2022 走看看