我有一个问题,将数字递增0.5。我使用了“+ =”运算符,但不是递增我的数字,而是在数字末尾添加“0.5”值。例如:
<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>
我也“附加”“°”到我的“newTemp”,因为我有温度的例子。这是一个问题吗?
所以,我的号码是24例如 - 执行时我得到“240.5”:(
答案 0 :(得分:6)
newvalue
是一个字符串。直接在+=
上使用num
:
num += 0.5;
答案 1 :(得分:1)
您将它转换为数字,但仍然在以下代码中调用字符串变量:
var num = new Number(newvalue);
var num = newvalue += 0.5;
var newtemp = newvalue + '°';
我认为你打算做的是
var num = new Number(newvalue);
num = num += 0.5;
var newtemp = num + '°';
但不管它是什么,你都应该保留一个数值变量,并将其增加,而不是加载你在上次运行时在屏幕上发布的温度,然后反复再做一次。
答案 2 :(得分:0)
newValue
是一个字符串 - 由value.replace("°","");
而不是
var num = newvalue += 0.5;
使用
newValue = parseInt(newvalue, 10) + 0.5;
(由于您未在其他地方使用num
,因此无需为其分配任何结果。)