Bagaimana cara membulatkan menjadi bilangan bulat di JavaScript?


93

Saya memiliki kode berikut untuk menghitung persentase tertentu:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Yang ingin saya dapatkan adalah angka pastinya 43dan jika totalnya 43.5harus dibulatkan44

Apakah ada cara untuk melakukan ini di JavaScript?

Jawaban:


169

Gunakan Math.round()fungsi tersebut untuk membulatkan hasil ke bilangan bulat terdekat.


membantu saya juga! :) Terima kasih untuk tautan MDN sobat :)
Afzaal Ahmad Zeeshan

1
Kredit untuk tautannya diberikan ke @Jeremy. Terima kasih telah memasukkannya - ini membuat memulai SO jauh lebih menyenangkan memiliki jawaban kelima yang pernah saya tulis mendapatkan suara sebanyak yang ini, yang pasti karena tautannya. :-)
hmakholm meninggalkan Monica

2
Bukankah OP ingin membulatkan UP? Jika demikian mungkin Math.ceil () akan lebih sesuai
martellalex

1
@martellalex: Dari pertanyaan, OP ingin 43.333 membulatkan ke 43 tetapi 43.5 untuk membulatkan ke 44, yang sama persis dengan perilaku pembulatan ke terdekat, dan menjalankan setengah bilangan bulat tepat menuju positif tak terhingga.
hmakholm meninggalkan Monica

66
//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();

salah satu atau kombinasi keduanya akan menjawab pertanyaan Anda


11
total = Math.round(total);

Harus melakukannya.


8

Gunakan Math.rounduntuk membulatkan angka ke bilangan bulat terdekat:

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

4

solusi yang sangat ringkas untuk membulatkan float x:

x = 0|x+0.5

atau jika Anda hanya ingin melapisi pelampung Anda

x = 0|x

ini adalah bitwise atau dengan int 0, yang menghilangkan semua nilai setelah desimal

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.