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?

saya tidak tahu bagaimana
sumber

Jawaban:

169

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

hmakholm meninggalkan Monica
sumber
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

Itik jantan
sumber
11
total = Math.round(total);

Harus melakukannya.

Phil
sumber
8

Gunakan Math.rounduntuk membulatkan angka ke bilangan bulat terdekat:

total = Math.round(x/15*100);
Gumbo
sumber
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

Karo Castro-Wunsch
sumber