mysql 데이터베이스의 자동 Increment ID에 BigInt (20) 데이터 유형을 사용하고 있습니다. 정수 값이 너무 큰 경우 어떻게 자바 스크립트의 숫자 정밀도로 처리 할 수 있습니다, 그것은 삽입하고 어떤 숫자 값을 읽을 수 있도록하지 않습니다. 어떻게 이것을 할 수 있습니까? 큰 정수 라이브러리에 대해 읽어하지만 난 결과를노드 j에서 매우 큰 숫자를 처리하는 방법은 무엇입니까?
예를 기대하지 않습니다 -
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
}
});
BIGINT (20)는 20 자리수의 정수를 생성하지 않습니다. (20)은 mysql의 zerofull 함수에만 적용됩니다 ... BIGINT의 최소값과 최대 값은 https : //dev.mysql입니다. com/doc/refman/5.5/ko/integer-types.html .. –
@robertklep는 좋은 대답을 제공합니다. 나는 또 다른 생각을 추가하고 싶다. 구체적인 환경에 따라 자바 스크립트는 최대 2^53 - 1의 "안전한 정수"를 제공합니다. MySQL의 BIGINT는 설치에 따라 64 비트 값을가집니다. 따라서 2^53 - 1 (= 9007199254740991)이면 충분합니다. 어쨌든이 조합을 사용할 수도 있습니다 (물론 경계를 관리해야합니다). – iquellis