export default function amountTranslate(
number,
unit,
decimals = 2,
dec_point = ".",
thousands_sep = ","
) {
if (typeof number === "undefined" || number === null) {
return "-";
} else {
number = (number + "").replace(/[^0-9+-Ee.]/g, "");
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 2 : Math.abs(decimals),
sep = typeof thousands_sep === "undefined" ? "," : thousands_sep,
dec = typeof dec_point === "undefined" ? "." : dec_point,
s = "",
toFixedFix = function (n, prec) {
// 本身数据就有2位小数点,不截取了,直接返回
return "" + n;
// var k = Math.pow(10, prec)
// return '' + Math.floor(n * k) / k
};
s = (prec ? toFixedFix(n, prec) : "" + Math.round(n)).split(".");
var re = /(-?\d+)(\d{3})/;
while (re.test(s[0])) {
s[0] = s[0].replace(re, "$1" + sep + "$2");
}
if ((s[1] || "").length < prec) {
s[1] = s[1] || "";
s[1] += new Array(prec - s[1].length + 1).join("0");
}
return s.join(dec) + unit;
}
}
export function reAmountTranslate(data, unit = "") {
if (typeof data === "undefined" || data === null) {
return data;
}
let newData = "" + data;
if (newData.includes("|")) {
let dataArray = newData.split("|").map(item => {
return reAmountTranslate(item);
});
return dataArray.join("|");
}
let index = newData.indexOf(",");
let dataArray = newData.split(".");
let xs;
if (dataArray[1] === undefined) {
let decimals = unit === "万元" ? "000000" : "00";
xs = decimals;
} else {
xs = dataArray[1];
let dec = unit === "万元" ? 6 : 2;
xs = xs.padEnd(dec, "0");
}
if (unit === "万元") {
xs = Array.from(xs);
xs.splice(4, 0, ".");
xs = xs.join("");
} else {
xs = "." + xs;
}
dataArray.splice(1, 1, xs);
newData = dataArray.join("");
while (index !== -1) {
newData = newData.substring(0, index) + newData.substring(index + 1);
index = newData.indexOf(",");
}
return newData;
}
封装全局函数,对金额类型的数据,保存位数,自动补零
最新推荐文章于 2026-01-01 17:43:06 发布
这篇博客主要介绍了两个JavaScript函数,amountTranslate和reAmountTranslate,用于数值的转换和格式化。amountTranslate函数处理数字,单位,小数位数等,进行四舍五入并添加千位分隔符。reAmountTranslate函数则对包含逗号的数字进行处理,根据单位(如万元)调整小数点位置,并确保符合指定的小数位数。这两个函数对于财务或者数据展示场景非常实用。
729

被折叠的 条评论
为什么被折叠?



