7

我在将数字增加 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” :(

4

3 回答 3

7

newvalue是一个字符串。直接用+=在你的num

num += 0.5;
于 2013-02-24T17:53:05.487 回答
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 + '°';

但无论它是什么,您都应该在函数之外保留一个数字变量,并增加它,而不是加载上次运行时在屏幕上发布的温度,然后一遍又一遍地重复。

于 2013-02-24T17:58:47.117 回答
0

newValue是一个字符串 - 返回value.replace("°","");

代替

var num = newvalue += 0.5;

采用

newValue = parseInt(newvalue, 10) + 0.5;

(由于您没有num在其他任何地方使用,因此您无需为其分配任何结果。)

于 2013-02-24T17:54:20.210 回答