Thank you Henry, I reported it here.
http://code.jsoftware.com/wiki/System/Interpreter/Bugs/Errors#Error_in_float_representation_between_1e15_and_1e19 Let me know if you had somewhere else in mind. Cheers, bob > On Aug 9, 2017, at 9:05 AM, Henry Rich <[email protected]> wrote: > > This is a bug, since 999...9.3 should become 999...9 rather than 100...0. > I'm away from home now, but I think what's happening is this: > > 999...9 is converted to integer > > . is encountered and turns it to float > > It's rounded to the nearest float which is 100...0 > > As a final step the JE checks to see if the value is exactly integral, > which it is, and it is converted back to integer. > > If you add this to Interpreter/Bugs I'll fix it when i get back. > > Henry Rich > > On Aug 9, 2017 16:16, "bill lam" <[email protected]> wrote: > > I think this is the difference between 32 and 64-bit, > > 9!:14'' > j602/2008-03-03/16:45 > 3!:0[ 9999999999999999.3 > 4 > > In J32 > > a.i. 2 fc 9999999999999999.3 > 0 128 224 55 121 195 65 67 > a.i. 2 fc 1e16 > 0 128 224 55 121 195 65 67 > > the number has the same bit pattern as 1e16 (an integer) > which can be represented as a 64-bit integer. I guess > J64 is correct since 9999999999999999.3 and 1e16 is the > same number in ieee fp and J prefers integer to floats, > eg > 3!:0 [ 2.0 > 4 > > Ср, 09 авг 2017, robert therriault написал(а): >> Hi Pascal, >> >> I see the same behaviour in j806 as j805. Do you see something different? >> >> JVERSION >> Engine: j806/j64avx/darwin >> Beta-4: commercial/2017-06-27T12:55:06 >> Library: 8.06.03 >> Qt IDE: 1.5.3/5.6.2 >> Platform: Darwin 64 >> Installer: J806 install >> InstallPath: /users/bobtherriault/j64-806 >> Contact: www.jsoftware.com >> (; datatype) 999999999999999.3 >> ┌────┬────────┐ >> │1e15│floating│ >> └────┴────────┘ >> (; datatype) 9999999999999999.3 >> ┌─────────────────┬───────┐ >> │10000000000000000│integer│ >> └─────────────────┴───────┘ >> (; datatype) 99999999999999999.3 >> ┌──────────────────┬───────┐ >> │100000000000000000│integer│ >> └──────────────────┴───────┘ >> (; datatype) 999999999999999999.3 >> ┌───────────────────┬───────┐ >> │1000000000000000000│integer│ >> └───────────────────┴───────┘ >> (; datatype) 9999999999999999999.3 >> ┌────┬────────┐ >> │1e19│floating│ >> └────┴────────┘ >> >> Cheers, bob >> >>> On Aug 9, 2017, at 7:54 AM, 'Pascal Jasmin' via Programming < > [email protected]> wrote: >>> >>> in j806, 9999999999999999.310000000000000000 probably the j805 > behaviour is preferred. If only for consistency. But there may be a good > reason for change. >>> >>> From: robert therriault <[email protected]> >>> To: Programming forum <[email protected]> >>> Sent: Wednesday, August 9, 2017 10:40 AM >>> Subject: [Jprogramming] Integer-floating type change for large numbers > in j805 and j806 >>> >>> I am guessing that the following has something to do with precision of > large numbers in j805 and is also true for j806. >>> >>> (; datatype) 999999999999999.3 >>> ┌────┬────────┐ >>> │1e15│floating│ >>> └────┴────────┘ >>> (; datatype) 9999999999999999.3 >>> ┌─────────────────┬───────┐ >>> │10000000000000000│integer│ >>> └─────────────────┴───────┘ >>> (; datatype) 99999999999999999.3 >>> ┌──────────────────┬───────┐ >>> │100000000000000000│integer│ >>> └──────────────────┴───────┘ >>> (; datatype) 999999999999999999.3 >>> ┌───────────────────┬───────┐ >>> │1000000000000000000│integer│ >>> └───────────────────┴───────┘ >>> (; datatype) 9999999999999999999.3 >>> ┌────┬────────┐ >>> │1e19│floating│ >>> └────┴────────┘ >>> JVERSION >>> Engine: j805/j64/darwin >>> Release: commercial/2016-12-11T08:17:56 >>> Library: 8.05.14 >>> Qt IDE: 1.5.4/5.6.2 >>> Platform: Darwin 64 >>> Installer: J805 install >>> InstallPath: /applications/j64-805 >>> Contact: www.jsoftware.com >>> >>> Further investigation shows me it was not this way with the 32 bit > version of j701, so it may be an artifact of moving to 64 bit? >>> >>> (; datatype) 999999999999999.3 >>> ┌────┬────────┐ >>> │1e15│floating│ >>> └────┴────────┘ >>> (; datatype) 9999999999999999.3 >>> ┌────┬────────┐ >>> │1e16│floating│ >>> └────┴────────┘ >>> (; datatype) 999999999999999999.3 >>> ┌────┬────────┐ >>> │1e18│floating│ >>> └────┴────────┘ >>> (; datatype) 9999999999999999999.3 >>> ┌────┬────────┐ >>> │1e19│floating│ >>> └────┴────────┘ >>> JVERSION >>> Engine: j701/2011-01-10/11:25 >>> Library: 7.01.088 >>> Platform: Darwin 32 >>> Installer: j701a_mac_intel.dmg >>> InstallPath: /Applications/j701 >>> >>> Cheers, bob >>> >>> >>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
