Though not quite the same issue but is this related to the behavior listed at http://geocar.sdf1.org/numbers.html ?
On Wed, Aug 9, 2017 at 2:17 PM, robert therriault <bobtherria...@mac.com> wrote: > I was more surprised by the type change within a certain numeric range. > > That just seemed a little...odd. > > I guess that even though it feels strange to have a constant change type > just by being > entered, it's not really any different than these examples. > > (; datatype) 3j0 > ┌─┬───────┐ > │3│integer│ > └─┴───────┘ > (; datatype) 3.0 > ┌─┬───────┐ > │3│integer│ > └─┴───────┘ > (; datatype) 3.6j0 > ┌───┬────────┐ > │3.6│floating│ > └───┴────────┘ > (; datatype) 3r5j0 > ┌───┬────────┐ > │0.6│floating│ > └───┴────────┘ > > Cheers, bob > > > On Aug 9, 2017, at 10:33 AM, Raul Miller <rauldmil...@gmail.com> wrote: > > > > It's not a bug, it's an artifact of the 64 bit floating point standard. > > > > 2 ^.9999999999999999 > > 53.1508 > > > > https://en.wikipedia.org/wiki/IEEE_754#Basic_and_interchange_formats > > > > The binary64 format has 53 binary digits or 15.95 decimal digits. This > > means ".16#'9' cannot be represented exactly using this format. > > > > And, we do not use exact representation of large numbers by default > > because that's too slow for large datasets. Put differently, if you > > want exact representation and are willing to take the performance hit, > > you should specify that. For example: ".'x',~16#'9' or > > ".'3r10+','x',~16#'9' > > > > Thanks, > > > > -- > > Raul > > > > On Wed, Aug 9, 2017 at 12:05 PM, Henry Rich <henryhr...@gmail.com> > 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" <bbill....@gmail.com> 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 < > >> programm...@jsoftware.com> 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 <bobtherria...@mac.com> > >>>> To: Programming forum <programm...@jsoftware.com> > >>>> 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 > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm