2010-08-31 94 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