10 진수 값 (DECIMAL (32, 12))을 저장하는 MySQL 데이터베이스가 있습니다. HeidiSQL을 사용하여 값을 선택할 때 값이 올바르게 표시됩니다 (예 : 15922.638440778302). 하지만 NodeJS에서 MySQL 바인딩 (https://github.com/mysqljs/mysql)을 사용하여 동일한 작업을 수행하면 15922.63844077830 이 표시됩니다.NodeJS : MySQL에서 부정확 한 10 진수 값을 반환합니다.
내 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']
})
은 diff는 17 자리에 대한에 있기 때문에, 나는 뭔가 DOUBLE''로 전환하기로 결정 추론, 정밀도는 약 16 자리입니다. –