2009-08-04 22 views
8

Aşağıdaki javascript kodum var. değeri verilirse ondalık basamak bırakılan eğer 2'ye kadar yuvarlak bir yolu olup olmadığını merak ediyorum 1 < 55/30 < 2. 1 berijavascript içinde parseInt ile tamsayı yuvarlama

if(frequencyValue <= 30) 
      leftVal = 1; 
     else if (frequencyValue > 270) 
      leftVal= 10; 
     else 
      leftVal = parseInt(frequencyValue/30); 

anda 55 (örneğin) o dönecektir oldu 0,5'ten büyük. peşin

sayesinde

cevap

26

parseFloat ve Math.Round bir arada kullanın

Math.round(parseFloat("3.567")) //returns 4 

kodunuzu numunesi dayanarak [DÜZENLE], kendi argüman beri hiç bir parseInt gerekmez zaten bir sayıdır. aksi takdirde hata ayıklama acı bir bütün dünyada alabilirsiniz parseInt (myNum, 10): Tek ihtiyacınız hep on tabanına zorlamak opsiyonel ikinci param geçen öneriyoruz acı deneyimden Math.round

+3

olduğunu 0'lar ile başlayan dizileri dönüştürmeyi denediğinde, bunları tümüyle Hex moduna ve benzeri bir şeye atıyor ... –

+0

ParseFloat'ın radix parametresine sahip olmaması dışında katılıyorum. Sadece parseFloat (string). –

5
leftVal = Math.floor(frequencyValue/30 + 0.5); 
+3

Bu yanlış görünüyor. Kat, her zaman alt değerini döndürür, bu da özellikle sorucunun istemediği şeydir. –

+0

Bu yüzden 0,5 – cdm9002

+0

ekliyorsunuz. – Nosredna