2013-02-24 21 views
6

Bir sayıyı 0,5 artırdığım için bir sorunum var. "+ =" Operatörünü kullandım, ancak numaramı arttırmak yerine, bu sayının sonunda "0,5" değerini ekler. örnek şudur: Ben sıcaklık örneği var çünküJavaScript tarafından 0.5 artırılıyor - nasıl?

<script> 
function setTempUp(){ 
var value = document.getElementById("targetTemp").firstChild.data; 
var newvalue = value.replace("°",""); 
var num = new Number(newvalue); 
var num = newvalue += 0.5; 
var newtemp = newvalue + '°'; 
document.getElementById("targetTemp").innerHTML = newtemp; 
var cover = document.getElementById('tempChange').clientHeight; 
var coverInt = parseInt(cover, 10); 
var coverNew = cover - 11; 
document.getElementById('tempChange').setAttribute("style","height:" + coverNew + "px"); 
}  
</script> 

Ben de Newtemp " "Benim için"" ° "takılarak" ediyorum. Bu bir sorun mu?

Yani, benim bir numaralı örneğin 24 ise - çalıştırıldığında ben "240.5" olsun :(

cevap

6

newvalue bir dizedir doğrudan num üzerine += kullanın:.

num += 0.5; 
+0

Bunu kullanıyorum - harika çalışıyor. Hızlı cevaplar için hepinize teşekkür ederiz. –

0

newValue bir dizedir - value.replace("°","");

yerine

var num = newvalue += 0.5; 
tarafından döndürülen

Kullanım

newValue = parseInt(newvalue, 10) + 0.5; 

(başka bir yerde num kullanmıyorsanız bu yana, bunu hiçbir sonuç atamak gerekmez.)

+0

Bu hala bir hata atarak, çift atama sorunu var. – Giles

+0

@Giles - fonksiyonda tekrar kullanılmayan "num" i güncellemeyi - "var num" ek açıklamalarının hiçbir etkisi yoktur - bkz. Http://stackoverflow.com/a/14010168/836214 – Krease

+0

üzgünüm, değil hataya neden olan ikili ödev, 5 parseInt fonksiyonunu arttırmadığınız gerçeğidir. – Giles

1

Sen bir sayıya döküm, ama yine de arayacak mısın aşağıdaki kodda dize değişkeni:

var num = new Number(newvalue); 
var num = newvalue += 0.5; 
var newtemp = newvalue + '°'; 

ne yapmaya ne demek olduğunu düşünüyorum

var num = new Number(newvalue); 
num = num += 0.5; 
var newtemp = num + '°'; 

Ancak hangisi olursa olsun, sayısal bir değişkeni fonksiyondan uzak tutmalı ve ekranda yayınladığınız sıcaklığı son çalıştırmadan yüklemek yerine, art arda tekrar tekrar yapmalısınız.

İlgili konular