3

我正在使用node.js,并且我正在尝试添加两个整数,但是,它们只是将它们放在一起...我查找了Float,试图使整数浮动,但是node.js 无法识别float .

4

6 回答 6

11

显然,两者中至少有一个实际上是一个包含数字的字符串。V8 然后进行字符串连接而不是添加数字。

您需要做的是将字符串转换为实数。你可以使用parseInt()orparseFloat()函数来做到这一点,但更快的方法是减法0:由于不可能从字符串中减法,V8 尝试将字符串的内容视为数字。

最后你也会得到一个数字,但 AFAIK 这种方法比使用解析函数更快。

例子:

var foo = '23';
typeof (foo - 0); // => 'number'

var a = '23',
    b = '42';
console.log((a - 0) + (b - 0)); // 65
于 2013-01-01T06:15:31.010 回答
7

最好的方法是在执行任何操作之前进行转换,例如:

var result = Number(x1) + Number(x2) - Number(x3)

来源:http ://www.w3schools.com/jsref/jsref_number.asp

于 2015-04-03T06:44:53.063 回答
3

在我的 node.js 中,我这样做了。

这是 html 文件:index.html

<form action="/submission" method="POST"> 
First Number: <input name = "firstNumber" type="number" /> <br>
Second Number: <input name = "lastNumber" type="number" /> <br>
<input type="submit"/>
</form>

这是 node.js 文件:node.js

现在,当你这样做时,你也想先调用它,这样你就可以在本地主机上启动它,不管它是什么。你可以做出这样的选择。

var express = require('express');
var app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:false}));

现在我从我的终端 ^ 那里安装了正文解析器,它将在下面的 app.post 语句中使用。

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html'); //Gets the html
});



 app.post('/submission', function(req, res) {
   var first = parseInt(req.body.firstNumber);
   var second = parseInt(req.body.lastNumber);
    var sum = Number(first + second);
    res.send('The sum is: ' + Number(sum));
   });

然后不要忘记在本地主机的终端上运行您的文件。快乐编码!

于 2020-12-11T03:34:54.830 回答
1

我也有同样的问题,但解决方案很简单......这是因为字符串数据类型

var variable_name="1"; // String Type
console.log(parseInt(variable_name)+1);
于 2016-06-04T12:04:58.647 回答
0
**Add this to index.html file**

<form action="http://localhost:3000/sum" method="GET">
        <input id = "one" type="number" name="first" value="">
        <input id = "two" type="number" name="sec" value="">
        <input type="submit" value="OK">

</form>

**Add this to javascript file**

const express = require('express');
const app = express();

app.get('/sum',function(req,res){
    var a=Number(req.query.first);
    var b=Number(req.query.sec);
    var c;
    c=a+b;
    response = {
        result: c  
    };
    console.log(response);
    res.end(JSON.stringify(response));
}
);

然后使用 node.js 运行文件

于 2020-01-21T06:51:22.243 回答
-1

有一点延迟,但加起来可以减去负值,所以

var result = a+b; //Strings appending

变成

var result = a--b; //Integer a-(-b) --> a+b
于 2015-02-22T21:42:56.470 回答