保留两位小数位, 每隔三位添加‘,’(四舍五入)
方法1:
Money(value,num)的第一位value是必传的,第二位num是选填的 不填是保留两位小数
function Money(value, num) {
num = num > 0 && num <= 20 ? num : 2;
value = parseFloat((value + "").replace(/[^\d\.-]/g, "")).toFixed(num) + ""; //将金额转成比如 123.45的字符串
var valueArr = value.split(".")[0].split("").reverse() //将字符串的数变成数组
const valueFloat = value.split(".")[1]; // 取到 小数点后的值
let valueString = "";
for (let i = 0; i < valueArr.length; i++) {
valueString += valueArr[i] + ((i + 1) % 3 == 0 && (i + 1) != valueArr.length ? "," : ""); //循环 取数值并在每三位加个','
}
const money = valueString.split("").reverse().join("") + "." + valueFloat; //拼接上小数位
return money
}
方法2:
formatNumThousands(num) {
if (!num || isNaN(num)) {
return ''
}
let rnum = parseFloat(num).toFixed(2)
return rnum.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
}
保留两位小数位, 每隔三位添加‘,’(非四舍五入)
formatDecimal(num) {
num = num.toString()
let index = num.indexOf('.')
if (index !== -1) {
num = num.substring(0, 2 + index + 1)
} else {
num = num.substring(0)
}
let aaa = parseFloat(num).toFixed(2)
return aaa.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
}
网友评论