JavaScript科學計數法轉float型別
阿新 • • 發佈:2018-12-29
現有一個需求,是將1.337069262154058e-5
轉換為浮點數,喜歡用java轉換,JS又是我的不擅長的地方,只能求助於Google,搜了好幾個都無法實現,最後將找到一個,簡單的修改如下:
/*科學計數法轉換數值*/ function scientificToNumber(tempValueStr) { if ((tempValueStr.indexOf('E') != -1) || (tempValueStr.indexOf('e') != -1)) { var regExp = new RegExp('^(((\\d+.?\\d+)|(\\d+))[Ee]{1}((-(\\d+))|(\\d+)))$', 'ig'); var result = regExp.exec(tempValueStr); var resultValue = ""; var power = ""; if (result != null){ resultValue = result[2]; power = result[6]; result = regExp.exec(tempValueStr); } if (resultValue != "") { if (power != "") { var powVer = Math.pow(10, power).toString(); alert("10的" + power + "次方[" + powVer + "]"); resultValue = (resultValue * powVer).toString(); } } } }
測試結果
scientificToNumber("1.337069262154058e-5"); //轉換正確
scientificToNumber("1.337069262154058e-8"); //轉換完成後依舊是科學計數法,猜測是值太大了?