我在mysql数据库中使用BigInt(20)数据类型来自动增量id。 当整数值如此之大时,如何在javascript的数字精度之后处理它,它不允许插入和读取任何数字值。那么我怎样才能做到这一点。 阅读有关大整数库但我没有获得预期结果
实施例: -
var x = 999999999999999999999999999999999999999;
如何在不使用指数值和任何垃圾值的情况下打印相同的数字?
我试过了那个
var BigNumber = require('big-number');
var x = new BigNumber(999999999999999999999999999999999999999, 10);
console.log(x);
例2: -
如果我得到最后一个插入的Id,那么我该如何处理这个值
connection_db.query('INSERT INTO tableName SET ?', tableData,
function (error1, results1, fields1) {
error1){
// Db error
}else{
var lastInserted = new BigNumber(results1.insertId);
console.log(lastInserted);// still wrong value
}
});
答案 0 :(得分:3)
您只能传递/显示像字符串那样的大数字:
var BigNumber = require('big-number');
var x = new BigNumber('999999999999999999999999999999999999999', 10);
console.log(x.toString())
然而,最终,MySQL驱动程序如何处理这样的大数字,因为它必须考虑Number.MAX_SAFE_INTEGER
。
例如,mysql
模块有多种与处理supportBigNumbers
相关的选项(bigNumberStrings
和BIGINT
)。