From e4bc100e00845f62b6c83dd28fc216ff78c62031 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Thu, 16 Jan 2025 10:04:46 +0800 Subject: [PATCH] 下拉选择,移除URL调整的代码 --- common/Tools.js | 40 +++++++++++++++++++++++++++++++++------- 1 files changed, 33 insertions(+), 7 deletions(-) diff --git a/common/Tools.js b/common/Tools.js index 5625cfd..2f0635d 100644 --- a/common/Tools.js +++ b/common/Tools.js @@ -461,7 +461,7 @@ /** * 数值转换为千分位格式 * @param {Number|String} number - 传入的值 - * @param {String} decimalFormat - 处理小数的方式 - notRetain(不保留小数,没有小数时才生效),keepTwo(保留两位小数),keepThree(保留三位小数) + * @param {String} decimalFormat - 处理小数的方式 - notRetain(不保留小数,有小数时也会去掉小数位),keepTwo(保留两位小数),keepThree(保留三位小数) * @return {string} */ static thousandFormat(number, decimalFormat = 'keepTwo') { @@ -477,9 +477,7 @@ // 没有小数位 if (!(num.indexOf('.') > -1)) { needThousand = num.toString(); - if (decimalFormat === 'notRetain') { - decimals = ''; - } else if (decimalFormat === 'keepTwo') { + if (decimalFormat === 'keepTwo') { decimals = '00'; } else if (decimalFormat === 'keepThree') { decimals = '000'; @@ -489,9 +487,9 @@ else if (num.indexOf('.') > -1) { needThousand = num.split('.')[0].toString(); if (decimalFormat === 'keepTwo') { - decimals = Number(num?.split('.')[1])?.toFixed(2)?.split('.')[1] || ''; + decimals = Number(num).toFixed(2).split('.')[1] || ''; } else if (decimalFormat === 'keepThree') { - decimals = Number(num?.split('.')[1])?.toFixed(3)?.split('.')[1] || ''; + decimals = Number(num).toFixed(3).split('.')[1] || ''; } } // 计算整数位长度 @@ -506,7 +504,9 @@ let temp = ''; // 对整数取余 let remainder = len % 3; - decimals ? (temp = '.' + decimals) : temp; + if (decimals) { + temp = '.' + decimals; + } if (remainder > 0) { // 不是3的整数倍 return ( @@ -652,6 +652,32 @@ } }; } + /** + * 精确保留小数点几位数, 自动补零, 四舍五入 + * 修复 toFixed 四舍六入五讨论的问题 + * @param {Number|String} num 数值 + * @param {Number} [digit=0] 小数点后位数 + * @returns {String|NaN} + */ + static accFixed(num, digit = 0) { + const number = parseFloat(num); + if (isNaN(number)) { + return NaN; + } + if (number >= 0) { + return ( + Math.round((number + Number.EPSILON) * Math.pow(10, digit)) / Math.pow(10, digit) + ).toFixed(digit); + } else { + return ( + '-' + + ( + Math.round((Math.abs(number) + Number.EPSILON) * Math.pow(10, digit)) / + Math.pow(10, digit) + ).toFixed(digit) + ); + } + } } // h5 中,实现 rem 转换 px -- Gitblit v1.9.1