Bản sao có thể xảy ra:
round up nearest 0.10
round number in JavaScript to N decimal placesNửa xu một xu trở lên?
Làm thế nào tôi có thể khỏa lấp nổi như 0.075
lên đến 0.08
trong Javascript?
Bản sao có thể xảy ra:
round up nearest 0.10
round number in JavaScript to N decimal placesNửa xu một xu trở lên?
Làm thế nào tôi có thể khỏa lấp nổi như 0.075
lên đến 0.08
trong Javascript?
Bạn cần nhân với một trăm (để các xu là những gì sẽ được làm tròn), tròn, sau đó chia cho một trăm để có được giá hợp lý bằng đô la một lần nữa.
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
Sử dụng Math.Round. Lấy từ this bài viết
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
Javascript có ba chức năng làm tròn, tất cả đều là thành viên của đối tượng Math
: round
(vòng lên hoặc xuống, số nguyên gần nhất), floor
(làm tròn xuống) và ceil
(vòng lên). Thật không may, cả ba chỉ tròn với số nguyên gần nhất. Tuy nhiên, bạn có thể nhân số tiền đô la của bạn trước tiên (để nhận được đồng xu) và sau đó sử dụng ceil
để làm tròn lên xu tiếp theo;
var money = 0.075;
var pennies = money * 100;
money = Math.ceil(pennies)/100;
alert(0.755.toFixed(2));
'0.075.toFixed (2)' là '0.07', không phải' 0.08' theo yêu cầu. –
Được rồi đó là điều sai lầm. Tôi gõ sai mã thử nghiệm của tôi với thêm 5 với FF 3.5.11 javascript: alert ((0.075.toFixed (2)) + "\ n" + (0.0755.toFixed (2))); Gãi đầu vào cái này. lol – epascarello
Rất lạ http://jsbin.com/uyiho3 Cần phải xem những gì spec nói. :) – epascarello
http://stackoverflow.com/questions/2206335/round-up-nearest-0-10 –