print() does output numbers in scientific notation violating JSON number spec
[email protected] Thu, 18 Jan 2024 23:09:49 +0100
| Newsgroups | gmane.comp.mathematics.pari.devel |
|---|---|
| Message-ID | <[email protected]> |
From latest JSON rfc:
https://www.rfc-editor.org/rfc/rfc8259#section-6
number = [ minus ] int [ frac ] [ exp ]
decimal-point = %x2E ; .
digit1-9 = %x31-39 ; 1-9
e = %x65 / %x45 ; e E
exp = e [ minus / plus ] 1*DIGIT
frac = decimal-point 1*DIGIT
So no space is allowed between "frac" part end "exp" part.
But gp does output a space:
? version
%2 = [2, 15, 4]
? print(0.00001)
1.0000000000000000000000000000000000000 E-5
?
I use PARI/GP to write a JSON file, that is read by JavaScript/nodejs.
And that errors out on reading above number.
If I manually remove the space,
"1.0000000000000000000000000000000000000E-5" can be processed easily.
I would say this is at least an interoperability bug.
It should be fixed, if there is not a really good reason to output that
space.
Is there an option to make PARI/GP produce "0.00001" as output instead
of scientific representation?
Regards,
Hermann.