我正在使用BigInt(20)數據類型在mysql數據庫中自動增加id。 當整數值是如此之大,那麼我怎麼處理這個javascript數的精度後,它不會允許插入和讀取任何數值。那麼我怎麼能做到這一點。閱讀關於大整數庫 但我不會期望的結果如何在節點js中處理非常大的數字?
例子: -
var x = 999999999999999999999999999999999999999;
我怎麼能打印照片,無需使用其指數值和任何垃圾值相同數量?
我想這樣的
var BigNumber = require('big-number');
var x = new BigNumber(999999999999999999999999999999999999999, 10);
console.log(x);
例2: -
如果我得到最後插入的標識,那我該怎麼處理這個值
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
}
});
不要認爲BIGINT(20)會生成一個20位數的整數。(20)僅適用於mysql的zerofull函數...關閉BIGINT的最小值和最大值在這裏https://dev.mysql。 com/doc/refman/5.5/en/integer-types.html .. –
@robertklep提供了一個很好的答案。我想補充一點想法。取決於具體的環境,JavaScript爲您提供「安全整數」,最高爲2^53 - 1。MySQL的BIGINT是(取決於您的安裝)64位值。所以,如果2^53 - 1(= 9007199254740991)足夠滿足您的需求,那麼您可以使用這種組合(當然要考慮到您的界限)。 – iquellis