【发布时间】:2011-04-18 05:19:26
【问题描述】:
var a = 1;
var b = 2;
var c = a+b;
c 将显示为12;但我需要3
我如何使用 jQuery 做到这一点?
【问题讨论】:
-
不确定是否严重:/
标签: javascript jquery
var a = 1;
var b = 2;
var c = a+b;
c 将显示为12;但我需要3
我如何使用 jQuery 做到这一点?
【问题讨论】:
标签: javascript jquery
看起来你有字符串而不是数字,你需要parseInt()或parseFloat()(如果它们可能是小数),像这样:
var a = "1";
var b = "2";
var c = parseInt(a, 10) + parseInt(b, 10);
//or: var c = parseFloat(a) + parseFloat(b);
You can test the difference here,值得注意的是,这些不是 jQuery,而是基本的 JavaScript 函数,所以它不依赖于 jQuery 库。
【讨论】:
试试这个 -
var c = parseInt(a, 10) + parseInt(b, 10);
【讨论】:
parseInt() 上使用基数,否则默认情况下以0 开头的数字将被视为基数16。
parseInt("010") == 8。
试试这个:
var a = 1;
var b = 2;
var c = (+a) + (+b);
alert(c); //or whatever you want
【讨论】:
因为 jQuery 的威力显然是无与伦比的,这里是 100% jQuery 的处理方法:
var a = 1;
var b = 2;
$("<script>c=+("+a+")+ +("+b+")</script>").appendTo($(document));
现在c 将保存您的结果,而您只使用了 jQuery!正如你所看到的,jQuery 真的很棒,因为它可以做各种各样的事情
这也很有效,因为a 或b 是字符串都没有关系!
var a = 1;
var b = 2;
$("<script id='test'>$('<textarea id=\\'abc\\'>'+("+a+")+ +("+b+")+'</textarea>').appendTo($('body'))</script>").appendTo('body');
var c = $("#abc").val();
这个答案是用 100% jQuery 完成的,因为 jQuery 很棒,但要小心使用它,因为它有时可能不起作用。
您也可以使用革命性的jQuery Arithmetic Plugin,这已经解决了超过 4294967295 (>> 0 === -1) 个国家的世界和平:
var a = 1;
var b = 2;
var c = $.add(a,b);
虽然这一切都很好(这没有得到证实),但在 jQuery -3.0.1 中,我听说你可以通过这种方式添加数字:
$.number($.one, $.two).add($.number($.three, $.four))
这将 12(一 + 二)添加到 34(三 + 四)
【讨论】:
var a =10;
var b=10;
var c=a+b;
alert(c);
//in double case
var e=10.5;
var f=10.5;
alert(e+f);
//forcelly convert to int
alert(parseInt(e)+parseInt(f));
//forcelly convert to float
alert(parseFloat(a)+parseFloat(b));
Example :
https://jsfiddle.net/v0rjek67/6/
【讨论】:
这将执行从基于 ID 选择的输入变量中提供的两个变量的相加。
var salary, tds, netSalary;
salary = parseInt($("#txtSalary").val());
$("#txtTds").on('mouseenter focus', function ()
{
tds = parseInt($("#txtSalary").val() * (0.1));
$("#txtTds").val(tds);
});
$("#txtNetSalary").on('mouseenter focus', function () {
netSalary = parseInt($("#txtSalary").val() +("#txtTds").val());
$("#txtNetSalary").val(netSalary);
});
【讨论】: