Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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和值_Javascript - Fatal编程技术网

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 或者,如果这些值是从某个地方解

我需要对javascript中的几个值求和。我已经尝试使用以下代码

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"