Làm cách nào để làm tròn thành số nguyên trong JavaScript?


92

Tôi có mã sau để tính một tỷ lệ phần trăm nhất định:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Kết quả tôi muốn có là con số chính xác 43và nếu là tổng thì 43.5nó phải được làm tròn thành44

Có cách nào để làm điều này trong JavaScript không?

Câu trả lời:


167

Sử dụng Math.round()hàm để làm tròn kết quả đến số nguyên gần nhất.


đã giúp tôi quá! :) Cảm ơn bạn đã liên kết bạn thân MDN :)
Afzaal Ahmad Zeeshan

1
Tín dụng cho liên kết chuyển đến @Jeremy. Cảm ơn bạn đã chèn nó - nó làm cho việc bắt đầu trên SO vui hơn rất nhiều khi câu trả lời thứ năm mà tôi từng viết nhận được nhiều phiếu bầu như câu này, điều này chắc chắn là do liên kết. :-)
hmakholm còn lại Monica

2
OP không muốn làm tròn? Nếu vậy có lẽ Math.ceil () sẽ thích hợp hơn
martellalex

1
@martellalex: Từ câu hỏi, OP muốn 43,333 làm tròn thành 43 nhưng 43,5 làm tròn thành 44, điều này khớp chính xác với hành vi làm tròn đến gần nhất của ECMAScript chạy các số nguyên nửa chính xác về phía vô cùng dương.
hmakholm còn lại Monica

65
//method 1
Math.ceil(); // rounds up
Math.floor(); // rounds down
Math.round(); // does method 2 in 1 call

//method 2
var number = 1.5; //float
var a = parseInt(number); // to int
number -= a; // get numbers on right of decimal

if(number < 0.5) // if less than round down
    round_down();
else // round up if more than
    round_up();

một trong hai hoặc kết hợp sẽ giải quyết câu hỏi của bạn



8

Sử dụng Math.roundđể làm tròn số thành số nguyên gần nhất:

total = Math.round(x/15*100);

4

một giải pháp rất ngắn gọn để làm tròn số float x:

x = 0|x+0.5

hoặc nếu bạn chỉ muốn làm sàn phao của mình

x = 0|x

đây là một bitwise hoặc với int 0, làm giảm tất cả các giá trị sau số thập phân

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.