JavaScript'te tam sayılara nasıl yuvarlayabilirim?


94

Belirli bir yüzdeyi hesaplamak için aşağıdaki koda sahibim:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Sonuç olarak sahip olmak istediğim şey tam sayıdır 43ve eğer toplam sayı ise 43.5yuvarlanmalıdır.44

Bunu JavaScript'te yapmanın bir yolu var mı?

Yanıtlar:


170

Sonucu en Math.round()yakın tam sayıya yuvarlamak için işlevi kullanın .


bana da yardım etti! :) MDN bağlantı arkadaşı için teşekkürler :)
Afzaal Ahmad Zeeshan

1
Bağlantının kredisi @ Jeremy'ye gider. Eklediğiniz için teşekkürler - yazdığım beşinci cevabın bu cevap kadar çok oy alması SO'da başlamayı çok daha eğlenceli hale getirdi, bu kesinlikle bağlantıdan kaynaklanıyordu. :-)
hmakholm,

2
OP YUKARI yuvarlamak istemedi mi? Öyleyse belki Math.ceil () daha uygun olur
martellalex

1
@martellalex: Sorudan OP, 43.333'ün 43'e yuvarlanmasını ama 43.5'in 44'e yuvarlanmasını istedi; bu, ECMAScript'in Math.round () 'un en yakına yuvarlama ve tam yarı tamsayıları pozitif sonsuza doğru çalıştırma davranışıyla tam olarak eşleşiyor .
hmakholm, Monica'yı

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

ya biri ya da bir kombinasyon sorunuzu çözecektir



8

Math.roundSayıyı en yakın tam sayıya yuvarlamak için kullanın :

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

4

bir float x'i yuvarlamak için çok kısa bir çözüm:

x = 0|x+0.5

ya da sadece şamandıranı döşemek istiyorsan

x = 0|x

bu bit bazında veya ondalıktan sonra tüm değerleri düşüren int 0 ile

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.