我有一个存储十进制值的MySQL数据库(DECIMAL(32,12))。当我使用HeidiSQL选择值时,值正确显示(例如15922.638440778302)。但是当我使用MySQL绑定(https://github.com/mysqljs/mysql)在NodeJS中做同样的事情时,它显示我15922.638440778303。
我的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']
})
将以下行添加到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