parseFloat不会将sql中的字符串值更改为float

时间:2016-04-12 14:58:03

标签: javascript mysql node.js

我正在使用node-mysql并且有2行。我正在将“总数”加在一起。值为1.10和1.16的列明显预计总量为2.26

我正在查询表格,并按如下方式添加它们:

connection.query(q3, function (err, results) {
    if (err) throw err;
    var totalSum=0;
    for(i=0; i<results.length;i++) {
        totalSum = totalSum + parseFloat(results[i].total).toFixed(2);
    }

但是我的totalSum返回01.101.16,它显示为字符串的串联。为什么我的parseFloat没有改变从sql获得的字符串?

由于

3 个答案:

答案 0 :(得分:3)

如果要将总和格式化为小数点后两位的数字,请在之后计算总计。 .toFixed()函数返回一个字符串,而不是数字。

答案 1 :(得分:0)

试试这个:

totalSum = (totalSum + parseFloat(results[i].total)).toFixed(2);

答案 2 :(得分:0)

在循环中使用toFixed是没有意义的。它应该在总和上调用。

let totalSum = results.reduce((prev,curr) => prev.total + curr.total).toFixed(2);