Javascript BigNumber 에러 1e+22 해결
본문 바로가기

Frontend/모던자바스크립트

Javascript BigNumber 에러 1e+22 해결

Error: Please pass numbers as strings or BigNumber objects to avoid precision errors.

 

콘솔에 숫자끝에 0을 많이 붙이면 10진수대신 1e+숫자가 표기된다. 이를 무시하면 위와같은 에러를 만들어낼 수있다.

 

BN라이브러리를 활용한 10진수 처리

number에 위와같이 0이 많은숫자더라도 10진수로 표시해준다.

const BN = require('bn.js');
new BN(number,10)

 

활용 예제

// data =[{amount:"1000000000000000000" || "0", created_at:'', detail:null},{},...]
data !== null && data.forEach(e => {
    e['amountFromPeb'] = caver.utils.fromPeb(new BN(e.amount, 10))
    console.log(e['amountFromPeb'])
})

양수 BN처리
음수 BN처리

https://github.com/indutny/bn.js/

 

GitHub - indutny/bn.js: BigNum in pure javascript

BigNum in pure javascript. Contribute to indutny/bn.js development by creating an account on GitHub.

github.com

 

반응형