NodeJS:MySQL返回不准确的十进制值

时间:2017-12-29 20:44:24

标签: mysql node.js decimal

我有一个存储十进制值的MySQL数据库(DECIMAL(32,12))。 当我使用HeidiSQL选择值时,值正确显示(例如15922.638440778302)。但是当我使用MySQL绑定(https://github.com/mysqljs/mysql)在NodeJS中执行相同操作时,它显示15922.63844077830 3

我的SQL查询非常简单:

SELECT SUM(`amount`) FROM `balances`;

知道什么会导致差异吗?也许我需要在NodeJS中的MySQL初始化期间指定精度?目前,我没有指定登录凭据以外的任何内容:

let mysql = require('mysql').createPool({
  host: global.dbconfig['dbhost'],
  database: global.dbconfig['dbname'],
  user: global.dbconfig['dbuser'],
  password: global.dbconfig['dbpass']
})

1 个答案:

答案 0 :(得分:3)

mysql配置中添加以下行。

 supportBigNumbers: true
 bigNumberStrings: true

然后它变成:

let mysql = require('mysql').createPool({
  host: global.dbconfig['dbhost'],
  database: global.dbconfig['dbname'],
  user: global.dbconfig['dbuser'],
  password: global.dbconfig['dbpass'],
  supportBigNumbers: true,
  bigNumberStrings: true,
})

有关连接选项的更多信息:docs