我试图将十进制数字截断到小数位。像这样: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.
逻辑在寻找这种用法时有些古怪,可能会受益于快速重构。但它仍然有效。幸运总比不好好。
添加回答
举报
0/150
提交
取消