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.