我的值为1724.1000000000001
,如何将这样的值汇总到javascript中的1724.11
?
我需要一个通用的功能。请帮忙......
答案 0 :(得分:4)
一种简单的方法是:
var num = 1724.1000000000001;
num = Math.ceil(num * 100) / 100;
alert(num); // 1724.11
工作原理:
Ceil会将价值提高一倍。但是你想要有2个十进制数字。最好的方法是:
现在你有一个带有2位小数的向上舍入值。 这就是:
1724.1000000000001 * 100 = 172410.00000000001
round-up on 172410.00000000001 = 172411
172411 / 100 = 1724.11
答案 1 :(得分:3)
由于问题中的示例要求1724.11
而不是1724.1
的结果,我会假设您不是严格要round
,而是ceil
:< / p>
var n = 1724.10000000001;
Math.ceil(n * 100) / 100; // >> 1724.11
如果我们需要Math.round
代替Math.ceil
进行简单的向上舍入到第二个小数。
答案 2 :(得分:1)
来自http://www.javascriptkit.com/javatutors/round.shtml:
var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100 //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10 //returns 28.5
3) //round 8.111111 to 3 decimals
var result=Math.round(8.111111*1000)/1000 //returns 8.111
答案 3 :(得分:1)
您可以尝试toFixed
修复2位小数,下面是代码。
var num=1724.1999;
alert(num.toFixed(2));
结果1724.20
答案 4 :(得分:0)
将数字舍入为2位小数:
var num = 1724.1000000000001;
num = Math.ceil(num*100)/100;
// num == 1724.11
或者,试试这个:
var num = 1724.1000000000001;
function round(num, decimals){
var d = Math.pow(10,decimals)
return Math.ceil(num*d)/d;
}
console.log(round(num,0))
console.log(round(num,1))
console.log(round(num,2))
console.log(round(num,3))
console.log(round(num,4))
// 1725
// 1724.2
// 1724.11
// 1724.101
// 1724.1001