Skip to content

wbuss/JSONBigNumber

 
 

Repository files navigation

JSONBigNumber

JSONBigNumber.parse/stringify handling all JSON numbers using BigNumber. Based on Douglas Crockford JSON.js package and bignumber.js library.

Build Status Known Vulnerabilities

Usage

All JSON numbers will be passed to BigNumber in the JavaScript object returned from JSONBigNumber.parse()

example

let input = '{"big":1234567890.123456789,"small":789.012}';

let obj1 = JSON.parse(input);
console.log("JSON", obj1.big.toString());  //'JSON', '1234567890.1234567'
//The number has lost the last 2 digits
let out1 = JSON.stringify(obj1);
console.log("JSON", out1);  //'JSON', '{"big":1234567890.1234567,"small":789.012}'

let obj2 = JSONBigNumber.parse(input);
console.log("JSONBigNumber", obj2.big.toString());  //'JSONBigNumber', '1234567890.123456789'
//No loss of precision
let out2 = JSONBigNumber.stringify(obj2);
console.log("JSONBigNumber", out2);  //'JSONBigNumber', '{"big":1234567890.123456789,"small":789.012}'

JSONBigNumber.js: This file creates a JSONBigNumber property in the global object, setting its value to an object containing a stringify method and a parse method. The parse method uses recursive descent to do the parsing.

Note

For bignumber.js >= v6.0.0 use JSONBigNumber >= v1.0.0 For bignumber.js < v6.0.0 use JSONBigNumber < v1.0.0

JSON is a light-weight, language independent, data interchange format. See http://www.JSON.org/

JSON became a built-in feature of JavaScript when the ECMAScript Programming Language Standard - Fifth Edition was adopted by the ECMA General Assembly in December 2009. Unfortunately the built-in JSON handler makes use of JavaScript Number for handling Numbers in JSON causing the loss of precision for numbers with approximately 15 significant figures.

About

JSON in JavaScript Treating number as BigNumber

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%