我有代表金钱的字符串。例如 29.00 或 29.10 或 29.13 货币然而可以改变并且不一定导致默认具有两位小数的值(例如日元根本没有小数位)现在,我使用 Decimal.js 对这些值执行计算例如我乘以一个百分比let d = new decimal("29.00")
let e = d.mul(0.133333333333).toDP(d.decimalPlaces())然而,当构造函数去除尾随零并将 decimalPlaces 设置为 0 时,结果四舍五入到小数点后 0 位。我怎样才能得到一个小数值,它总是有输入字符串提供的小数位数?在此示例中,d.decimalPlaces 应返回 2(因为 29.00 必须保留小数位)。替代解决方案:如何从字符串中提取小数位数?
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
你是这个意思?
const keepDecimal = (str,mul) => {
const dec = str.split(".");
const numDec = dec.length===2?dec[1].length:0;
return (str*mul).toFixed(numDec);
}
console.log(keepDecimal("29.13",0.133333333333))
console.log(keepDecimal("29",0.133333333333))
添加回答
举报
0/150
提交
取消