hermann on Thu, 18 Jan 2024 23:09:54 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
print() does output numbers in scientific notation violating JSON number spec |
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.