Javascript和值
我需要对javascript中的几个值求和。我已经尝试使用以下代码Javascript和值,javascript,Javascript,我需要对javascript中的几个值求和。我已经尝试使用以下代码 var a = 2; var b = 5; c = a+b; 但是,不是计算a和b的值,而是输出(c)只合并这两个值。因此,给出的输出是: c = 25 我相信你们可以很容易地帮我。Thx之前。关于Andha。您的代码正在添加(连接)字符串。您确定您发布的代码代表您的问题吗?你写的应该有用。确保在实际代码中,您没有说: var a = '2'; // or something similar 或者,如果这些值是从某个地方解
var a = 2;
var b = 5;
c = a+b;
但是,不是计算a和b的值,而是输出(c)只合并这两个值。因此,给出的输出是:
c = 25
我相信你们可以很容易地帮我。Thx之前。关于Andha。您的代码正在添加(连接)字符串。您确定您发布的代码代表您的问题吗?你写的应该有用。确保在实际代码中,您没有说:
var a = '2'; // or something similar
或者,如果这些值是从某个地方解析出来的,那么在进行加法之前,一定要调用parseInt(a,10)
,10是基数
或者,正如注释中指出的那样,数字
功能可能适合您的用途。这很好:
var a = 2;
var b = 5;
var c = a + b; // c is now 7
确保这些值是数字,否则它们将合并而不是合并
a = parseInt(a, 10); // a is now int
您显示的代码不会按照您描述的方式工作。它将导致
7
但是,当尝试执行加法时,如果其中一个或两个数值实际上都是数字字符串,则其他值将转换为字符串,并将它们连接起来
当尝试读取表单值、读取cookie或其他类型的HTTP头时,最有可能发生这种情况。要将字符串转换为数字,需要使用parseInt()
[]。通读上面的文档,确保注意并提供第二个参数(radix
),以确保从字符串到数字的转换使用您期望的基数。(其他答案中缺少关于radix
的信息是我继续发表答案的主要原因,尽管其他人已经提到了parseInt()
)
另外,仅供参考,当处理未知值并希望执行数学运算时,另一个方便的函数是
isNaN()
[]。作者可能已经编写了“简化”代码,以便我们能够了解情况。在获取输入值时遇到了相同的问题。JS将其解释为字符串。使用“Number()”解决了问题:
var sum = Number(document.getElementById("b4_f2_"+i).value) + Number(document.getElementById("b4_f3_"+i).value) + Number(document.getElementById("b4_f4_"+i).value);
使用parseInt()
:
您只需在
+
之前添加+
即可将字符串
转换为数字
。因为有些人可以更容易阅读。
例如:
或者const c=(+a)+(+b)
可能更具可读性。
这将首先将字符串转换为数字。-对于将数字()应用于每个值非常重要。理想的方法是:
var sum = 0
sum = Number('93') + Number('7') //result 100
-而不是这样(小心点)
-注意这一点(因为变量将在默认情况下分配字符串类型)
在这里发布之前测试您的代码。这个版本实际上是有效的:不要忘记使用parseInt,parseInt(a,10)@Andha指定基数,我认为有一个jQuery插件可以实现这一点。谷歌的jQuery基本算术插件。是 啊我没有对值使用任何引号。我还使用parseInt(a)和parseInt(b)将它们转换为int。我做得对吗?那要看情况了
parseInt(a)
不会更改a
变量,它返回已解析的int。因此您可能需要a=parseInt(a)
或c=parseInt(a)+parseInt(b)
确保在调用parseInt()
时使用radix
参数。我可以看出,指定基数有助于提高可读性,但这真的有必要吗?这可能是一个非常有效的假设,这个应用程序将以10为基数求和。编辑:我猜,鉴于他正在解析数字,有可能在“0”前面加上前缀或其他什么。我承认这一点:-更好地转换成数字,嗯,ehr,number
。不需要基数-因此Number('08')
返回8,而不是0。请确保在调用parseInt()
时使用radix
参数。声明您可以执行a:X=(+“2”)+(+“b5”)-我发现它是interresting:)
const a = "2";
const b = "5";
const c = +a + +b
var sum = 0
sum = Number('93') + Number('7') //result 100
var sum = 0
sum = Number('97' + '3') //result 937
var sum = 0
sum = Number('97') + '3' //result "973"