我想将一个数字修剪成3位小数,然后将它舍入2位小数。
例如:
1.234567
Trim it to 1.234
Then round it = 1.23
另一个例子:
1.389999
Trim it to 1.389
Then round it: 1.39
我尝试使用toFixed()函数,但它会自动舍入它。
提前致谢。
答案 0 :(得分:0)
使用Math.floor
method修剪它,然后使用Math.round
method将其修剪:
var n = 1.23456;
n = Math.round(Math.floor(n * 1000) / 10) / 100;
答案 1 :(得分:0)
您可以将数字乘以10的幂,使用适当的数学方法,然后除以相同的因子。
对于四舍五入,有Math.round
:
function myRound(num, decimals) {
var factor = Math.pow(10, decimals);
return Math.round(num * factor) / factor;
}
对于截断,ECMAScript 6引入了Math.trunc
。对于旧浏览器,它可以是polyfilled,或者假设数字为正,您可以使用Math.floor
。
function myTruncate(num, decimals) {
var factor = Math.pow(10, decimals);
return Math.trunc(num * factor) / factor;
}
像
一样使用它们myTruncate(1.234567, 3); // 1.234
myTruncate(1.389999, 3); // 1.389
myRound(1.234567, 2); // 1.23
myRound(1.389999, 2); // 1.39