如何强制 JS 进行数学运算而不是将两个字符串放在一起

IT技术 javascript string math addition
2021-01-11 04:25:10

我需要 javascript 将 5 添加到一个整数变量中,但是它将变量视为字符串,因此它写出变量,然后将 5 添加到“字符串”的末尾。我怎样才能强迫它做数学呢?

var dots = document.getElementById("txt").value; // 5
function increase(){
    dots = dots + 5;
}

输出: 55

我怎样才能强制它输出10

6个回答

你有这条线

dots = document.getElementById("txt").value;

在您的文件中,这会将点设置为字符串,因为 txt 的内容不限于数字。

要将其转换为 int 将行更改为:

dots = parseInt(document.getElementById("txt").value, 10);

注意:10此处指定十进制(基数为 10)。如果没有这个,一些浏览器可能无法正确解释字符串。见MDN: parseInt

快捷方式... dots = +document.getElementById("txt").value
2021-03-15 04:25:10
更好地使用增量运算符进行加法。像 VARIABLE++ 而不是 VAR= VAR+1;
2021-03-21 04:25:10
parseInt(..., 10) 也,总是使用基数...一个健全性检查... if (!dots || dots < 1) 也可能是有序的...
2021-04-01 04:25:10
@AnkurRohillaab字符串,你需要它们是数字,这样你就可以对它们进行数学运算。这是由var c = parseInt(a,10)+parseInt(b,10)
2021-04-07 04:25:10
function add() { var a = prompt('输入第一个数字'); var b = prompt('输入第二个数字'); var c = a + b; console.log('reuslt is ' + c); } 添加(); 例如 var a = 5; 和 var b = 9; 然后它打印 59 而不是 14;我无法理解这里出了什么问题。
2021-04-08 04:25:10

最简单的:

dots = dots*1+5;

点将被转换为数字。

甚至比这更简单dots = +dots+5
2021-03-12 04:25:10

不要忘记 -parseFloat();如果您处理小数,请使用

只需使用Number.
2021-03-15 04:25:10
并且不要忘记 float 不是十进制数据类型stackoverflow.com/questions/588004/...
2021-04-03 04:25:10

我添加这个答案是因为我在这里没有看到它。

一种方法是在值前面放一个“+”字符

例子:

var x = +'11.5' + +'3.5'

x === 15

我发现这是最简单的方法

在这种情况下,该行:

dots = document.getElementById("txt").value;

可以改为

dots = +(document.getElementById("txt").value);

将其强制为一个数字

笔记:

+'' === 0
+[] === 0
+[5] === 5
+['5'] === 5

parseInt() 应该做的伎俩

var number = "25";
var sum = parseInt(number, 10) + 10;
var pin = number + 10;

给你

sum == 35
pin == "2510"

http://www.w3schools.com/jsref/jsref_parseint.asp

注意:10inparseInt(number, 10)指定十进制(基数为 10)。如果没有这个,一些浏览器可能无法正确解释字符串。见MDN: parseInt