Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript增量为0.5-如何增加?_Javascript_Variables_Increment - Fatal编程技术网

JavaScript增量为0.5-如何增加?

JavaScript增量为0.5-如何增加?,javascript,variables,increment,Javascript,Variables,Increment,将数字递增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 = new

将数字递增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>

函数setTempUp(){
var值=document.getElementById(“targetTemp”).firstChild.data;
var newvalue=value.replace(“”,“”);
var num=新编号(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(“样式”,“高度:”+coverNew+“px”);
}       
我还将“”附加到我的“newTemp”上,因为我有一个温度示例。这是个问题吗


例如,我的数字是24-执行时我得到“240.5”:(

newvalue
是一个字符串。直接在
num上使用
+=

num += 0.5;

newValue
是一个字符串-由
value返回。替换(“”,“”);

而不是

var num = newvalue += 0.5;
使用


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

您将其强制转换为一个数字,但仍在以下代码中调用字符串变量:

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 + '°';

但无论是哪一个,都应该在函数中保留一个数值变量,并增加该变量,而不是加载上次运行时在屏幕上显示的温度,然后反复执行该操作。

这仍然存在双重赋值的问题,这会引发一个错误。@Giles-它只是更新
num
,这是函数中不再使用-附加的
var num
声明无效-请参见抱歉,导致错误的不是双赋值,而是您不能将函数
parseInt
增加5。啊-您指的是
parseInt
的结果,因为它不是变量,所以它是无效的assig这就是我在发布答案之前没有在答案中运行代码的原因。我会更新它。我用过这个-它工作得很好。谢谢大家的快速回答。
var num = new Number(newvalue);
num = num += 0.5;
var newtemp = num + '°';