Nrg*_*zer 1 mysql decimal node.js
我有一个存储十进制值的 MySQL 数据库 (DECIMAL(32, 12))。当我使用 HeidiSQL 选择值时,这些值显示正确(例如 15922.638440778302)。但是当我使用 MySQL 绑定(https://github.com/mysqljs/mysql)在 NodeJS 中做同样的事情时,它显示我 15922.63844077830 3。
我的 SQL 查询非常简单:
SELECT SUM(`amount`) FROM `balances`;
Run Code Online (Sandbox Code Playgroud)
知道什么会导致差异吗?也许我需要在 NodeJS 中的 MySQL 初始化期间指定精度?目前,除了登录凭据之外,我没有指定任何其他内容:
let mysql = require('mysql').createPool({
host: global.dbconfig['dbhost'],
database: global.dbconfig['dbname'],
user: global.dbconfig['dbuser'],
password: global.dbconfig['dbpass']
})
Run Code Online (Sandbox Code Playgroud)
将以下几行添加到您的mysql配置中。
supportBigNumbers: true
bigNumberStrings: true
Run Code Online (Sandbox Code Playgroud)
然后就变成了:
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,
})
Run Code Online (Sandbox Code Playgroud)
有关连接选项的更多信息:文档