我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
当前回答
如果您正在寻找简单的Javascript代码,并希望使用两个输入框并从两个值中添加数字,请尝试此方法。这是代码。
Enter the first number: <input type="text" id="num1" /><br />
Enter the seccond number: <input type="text" id="num2" /><br />
<input type="button" onclick="call()" value="Add"/>
<script type="text/javascript">
function call(){
var q=parseInt(document.getElementById("num1").value);
var w=parseInt(document.getElementById("num2").value);
var result=q+w;
}
</script>
欲了解更多详情,请访问http://informativejavascript.blogspot.nl/2012/12/javascript-basics.html
其他回答
你可以这样用:
var num1 = '20',
num2 = '30.5';
alert((num1*1) + (num2*1)); //result 50.5
当在num1中应用*1时,将字符串转换为数字。
如果num1包含字母或逗号,则返回NaN乘以1
如果num1为空,num1返回0
亲切的问候! !
try
var x = parseFloat(num1) + parseFloat(num2) ;
或者,根据你的需要:
var x = parseInt(num1) + parseInt(num2) ;
http://www.javascripter.net/faq/convert2.htm
你可能想读一下Douglas Crockford写的《Javascript: the Good Parts》这本书。Javascript有一个相当大的陷阱集合!这本书对澄清这些问题大有帮助。另请参阅
http://www.crockford.com/ http://javascript.crockford.com/
以及Crockford先生的优秀文章《Javascript:世界上最被误解的编程语言》。
确保你的最终答案四舍五入小于16位小数浮点作为java脚本是错误的。
例如 5 - 7.6 = -2.5999999999999996
如果你需要把两个非常大的字符串加在一起,你需要在每个字符串位置计算加法:
function addStrings(str1, str2){
str1a = str1.split('').reverse();
str2a = str2.split('').reverse();
let output = '';
let longer = Math.max(str1.length, str2.length);
let carry = false;
for (let i = 0; i < longer; i++) {
let result
if (str1a[i] && str2a[i]) {
result = parseInt(str1a[i]) + parseInt(str2a[i]);
} else if (str1a[i] && !str2a[i]) {
result = parseInt(str1a[i]);
} else if (!str1a[i] && str2a[i]) {
result = parseInt(str2a[i]);
}
if (carry) {
result += 1;
carry = false;
}
if(result >= 10) {
carry = true;
output += result.toString()[1];
}else {
output += result.toString();
}
}
output = output.split('').reverse().join('');
if(carry) {
output = '1' + output;
}
return output;
}
@cr05s19xx对重复问题的建议:
当涉及到数字和加法时,JavaScript有点有趣。
给出以下内容
'20' - '30' = 10;//返回数字10 '20' + '30' = '2030';//以字符串形式返回 从document返回的值。getElementById是字符串,所以最好在进行加法或减法之前将它们全部(即使是有效的)解析为数字。你的代码可以是:
function myFunction() {
var per = parseInt(document.getElementById('input1').value);
var num = parseInt(document.getElementById('input2').value);
var sum = (num / 100) * per;
var output = num - sum;
console.log(output);
document.getElementById('demo').innerHTML = output;
}
function myFunction2() {
var per = parseInt(document.getElementById('input3').value);
var num = parseInt(document.getElementById('input4').value);
var sum = (num / 100) * per;
var output = sum + num;
console.log(output);
document.getElementById('demo1').innerHTML = output;
}