js处理科学计数法

匿名 (未验证) 提交于 2019-12-03 00:07:01

本文转载至:原文链接

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;         }     }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!