如何解决不要在JavaScript小数构造函数中去除尾随的零
我有代表钱的字符串。例如29.00或29.10或29.13,货币可以更改,并且不一定会导致默认情况下具有两个小数位的值(例如,日元根本没有小数位)
现在,我使用Decimal.js使用这些值执行计算
例如我要乘以百分比
let d = new decimal("29.00")
let e = d.mul(0.133333333333).toDP(d.decimalPlaces())
但是,此方法的结果四舍五入到小数点后0位,因为构造函数会删除尾随的零并将小数点后位置设置为0。
如何获取始终必须由输入字符串提供的小数位数的十进制值?在此示例中,d.decimalPlaces应该返回2(因为29.00必须到小数位)。
替代解决方案:如何从字符串中提取小数位数?
解决方法
你是这个意思吗?
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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。