UNPKG

@lzwme/asmd-calc

Version:

支持浮点数精度的加减乘除四则运算 JS 库。

49 lines (48 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDecimalLen = getDecimalLen; exports.isDecimal = isDecimal; exports.isNull = isNull; exports.toNonExponential = toNonExponential; /** * 获取指定数值的小数位长度 * @param num */ function getDecimalLen(num) { if (!isDecimal(num)) return 0; try { return toNonExponential(num).split('.')[1].length; } catch (e) { console.error(num, e); return 0; } } /** * 是否为小数 * @param n 要识别的参数 * @param useRegExp 是否使用正则方式。默认为 false */ function isDecimal(value) { var n = Number(value); return !Number.isNaN(n) && Math.ceil(n) !== n; } /** * NaN、null、undefined 返回 true,其它为 false * @param value */ function isNull(value) { return null == value || isNaN(value); } /** 将指定的浮点数转换为非科学计数法的字符串格式 */ function toNonExponential(num) { if (!num) return '0'; var strNum = String(num); if (strNum.indexOf('e') === -1) return strNum; num = Number(num); var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/); return num.toFixed(Math.max(0, (m[1] || '').length - Number(m[2]))); }