为了账号安全,请及时绑定邮箱和手机立即绑定

截断(不舍入)JavaScript中的十进制数字

截断(不舍入)JavaScript中的十进制数字

我试图将十进制数字截断到小数位。像这样:5.467   -> 5.46  985.943 -> 985.94toFixed(2)所做的只是正确的事情,但是却舍入了价值。我不需要四舍五入的价值。希望这是可能的JavaScript。
查看完整描述

3 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

考虑利用双波浪号:~~。


输入号码。乘以小数点后的有效数字,以便您可以使用截断到零位~~。再除以该乘数。利润。


function truncator(numToTruncate, intDecimalPlaces) {    

    var numPower = Math.pow(10, intDecimalPlaces); // "numPowerConverter" might be better

    return ~~(numToTruncate * numPower)/numPower;

}

我试图抵制将~~通话包装在括号中;我相信,操作顺序应该可以使它正常工作。


alert(truncator(5.1231231, 1)); // is 5.1


alert(truncator(-5.73, 1)); // is -5.7


alert(truncator(-5.73, 0)); // is -5


JSFiddle链接。


编辑:回头看,我也无意间也处理了一些情况,也将小数点后的四舍五入。


alert(truncator(4343.123, -2)); // gives 4300.


逻辑在寻找这种用法时有些古怪,可能会受益于快速重构。但它仍然有效。幸运总比不好好。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 436 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信