UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

67 lines (62 loc) 2.61 kB
import uuid from 'uuid'; let MathUtils = { uuid: () => { let uuidArr = uuid.v4().split("-"); return uuidArr.join(""); }, /** * 通过移动小数点 扩大倍数或缩小倍数(解决出现e+、e-的问题) * * @param value 数字字符串 */ scienceNum: function (value) { if (!value) return value; if (typeof value === 'number') value = value + ""; let minusStr = '';//是否有负号,例如:-5e-8、-2.3e-8 if (value.substring(0, 1) === '-') { minusStr = '-'; value = value.substring(1, value.length); } let eIndex = value.indexOf('E'); if (eIndex == -1) eIndex = value.indexOf('e'); if (eIndex != -1) { let doubleStr = value.substring(0, eIndex); let eStr = value.substring(eIndex + 1, value.length); eStr = parseInt(eStr); let doubleStrList = doubleStr.split('.'); let doubleStr1 = doubleStrList[0] || ""; let doubleStr2 = doubleStrList[1] || ""; if (eStr < 0) { //e- 很小的数 let str1Len = doubleStr1.length; let eStrs = Math.abs(eStr); if (str1Len > eStrs) { let nums = doubleStr1.substring(0, eStrs); let nume = doubleStr1.substring(eStrs, str1Len); doubleStr = nums + "." + nume + nume; } else if (str1Len < eStrs) { let indexNum = eStrs - str1Len; let str = _makeZero(indexNum); //用0补齐 doubleStr = '0.' + str + doubleStr1 + doubleStr2; } else { doubleStr = '0.' + doubleStr1 + doubleStr2; } } else { //e+ 很大的数 let str2Len = doubleStr2.length; if (str2Len > eStr) { let nums = doubleStr2.substring(0, eStr); let nume = doubleStr2.substring(eStr, str2Len); doubleStr = doubleStr1 + nums + '.' + nume; } else if (str2Len < eStr) { let indexNum = eStr - str2Len; let str = _makeZero(indexNum); //用0补齐 doubleStr = doubleStr1 + doubleStr2 + str; } else { doubleStr = doubleStr1 + doubleStr2; } } value = doubleStr; } return minusStr + value; } }; export default MathUtils;