2010-08-31 58 views

回答

7

您需要乘以100(这样才能得到四舍五入的美分),然后再除以一百再次以美元计价。

var dollars = 0.075; // 0.075 dollars 
var cents = dollars * 100; // ... is 7.5 cents 
var roundedCents = Math.round(cents); // ... but should really be 8 cents 
var roundedPrice = roundedCents/100; // ... so it's 0.08 dollars in the end 
2

使用Math.Round。从this文章

var original=28.4531) 

// round "original" to two decimals 
var result = Math.round(original*100)/100; 
// returns 28.452) 

// round "original" to 1 decimal 
var result = Math.round(original*10)/10; 
// returns 28.53) 

// round 8.111111 to 3 decimals 
var result = Math.round(8.111111*1000)/1000; 
// returns 8.111 
4

JavaScript有三个舍入功能,所有这些都在Math对象的成员采取:round(轮向上或向下,到最接近的整数),floor(向下舍入)和ceil(四舍五入)。不幸的是,所有三个都只能到最近的整数。但是,您可以先乘以您的美元金额(以获得便士),然后使用ceil四舍五入到下一分钱;

var money = 0.075; 
var pennies = money * 100; 
money = Math.ceil(pennies)/100; 
+0

应该是'Math.round'但这个想法是一样的。谢谢! – mpen 2010-08-31 04:58:53

+0

@Mark您的问题要求四舍五入......;) – 2010-08-31 05:00:18

+0

我想我问了如何将*半个半* *向上,这对于下面的一半我有点含糊不清); – mpen 2013-01-30 03:02:17

1
alert(0.755.toFixed(2)); 
+0

'0.075.toFixed(2)'是0.07“,而不是”0.08“。 – 2010-08-31 04:23:30

+0

好吧,这是搞砸了。我错误地输入了我的测试代码,使用FF 3.5.11 javascript:alert((0.075.toFixed(2))+“\ n”+(0.0755.toFixed(2)));在这一个上挠头。大声笑 – epascarello 2010-08-31 12:40:54

+0

很奇怪http://jsbin.com/uyiho3需要看看规范说什么。 :) – epascarello 2010-08-31 14:34:23