Page 1 of 1
JSON numbers in Scientific Notation
Posted: Wed Sep 28, 2022 9:31 pm
by tim.hurring
I've noticed that larger numbers are being generated in scientific notation by yajl_addNum
e.g. the number 25,122,332.47 is being generated as 2.512233247E7
This is causing a problem in the downstream system. Is there a way to avoid scientific notation, or increase the cutoff threshold?
Re: JSON numbers in Scientific Notation
Posted: Thu Sep 29, 2022 12:42 am
by Scott Klement
That's a floating point number.
I haven't seen yajl_addnum() do that. Are you certain you are using yajl_addnum (rather than yajl_addnumf)? And are you certain that it isn't already in that format before you add it? Can you show us the code you're using?
Re: JSON numbers in Scientific Notation
Posted: Thu Sep 29, 2022 3:49 am
by tim.hurring
Thanks Scott for your prompt reply. This was all my problem. It turns out that the JSON data generated by YAJL was actually fine, it was the tool I was using to display the JSON data that was presenting the numeric value in scientific notation!
Thanks again!
Re: JSON numbers in Scientific Notation
Posted: Wed Aug 16, 2023 11:13 am
by Jeron
Hi Team,
I have been facing an issue with JSON involving scientific notation to store small numbers with decimal point values in JSON form ( like - "eKG":2.0E-4 ). How to read these specific values using YAJL Lib functions available from a JSON object already been created by another user ?
YAJL_get_bignumber() or YAJL_get_number() both seems to fail. Please let me know thoughts on this. Much appreciated!
Regards,
Jeron
Re: JSON numbers in Scientific Notation
Posted: Wed Aug 16, 2023 5:03 pm
by Scott Klement
Jeron wrote: ↑Wed Aug 16, 2023 11:13 am
I have been facing an issue with JSON involving scientific notation to store small numbers with decimal point values in JSON form ( like - "eKG":2.0E-4 ). How to read these specific values using YAJL Lib functions available from a JSON object already been created by another user ?
Sigh... it's floating point notation, not "scientific" notation...
YAJL_get_bignumber() or YAJL_get_number() both seems to fail. Please let me know thoughts on this. Much appreciated!
Yeah, these routines use the RPG %DEC built-in function to interpret the
number, which is the problem -- it doesn't understand floating point notation. This didn't occur to me when I wrote it, and this is the first time someone has mentioned this problem. (The previous discussion was also related to floating point numbers, but not related to yajl_get_number/bignumber.)
Let me think, I'll get back to you.
Re: JSON numbers in Scientific Notation
Posted: Wed Aug 16, 2023 11:18 pm
by Scott Klement
Jeron,
Can you try downloading the updated copy of YAJL from my website and see if it solves the problem for you?
https://www.scottklement.com/yajl/
In this update, YAJL_GET_NUMBER and YAJL_GET_BIGNUMBER should no longer fail when the value is in floating point notation.
Re: JSON numbers in Scientific Notation
Posted: Fri Aug 18, 2023 12:20 pm
by Jeron
Thanks Scott for the help. program runs like butter

.
Stay Blessed.