在JS中要实现分转元通常都是直接除以100,但是这样直接通过数值的计算容易出现精度问题,因此我通过正则表达式替换的方式实现分转元避免两个数字之间计算出现精度的问题。下面是实现方案
const formatCentToYuan = (cent) => {
// 1. 确保输入是字符串,并补齐前导0(防止只有一位数的情况)
let s = String(cent).padStart(3, '0');
// 2. 插入小数点,得到类似 "1.50", "0.10", "1.05" 的格式
let yuanStr = s.replace(/(\d+)(\d{2})$/, "$1.$2");
// 3. 去掉末尾的 0,如果最后剩下一个小数点,也去掉 // [0]* 匹配末尾的0,\.? 匹配可能剩下的孤零零的小数点
return yuanStr.replace(/(\.\d*?[1-9])0+$/, "$1").replace(/\.0+$/, "");
}