Well, since it's encoded as an integer (which I would have noticed if
I had read Bob Therriault's original post more closely), and not [like
I was thinking] a float, I agree that dropping the .3 is better than
adding a 1.

That said, I guess we also should not object too loudly if
9999999999999999.3 were instead encoded the same as
9999999999999999+0.3 gets encoded.

Thanks,

-- 
Raul

On Wed, Aug 9, 2017 at 3:25 PM, Henry Rich <henryhr...@gmail.com> wrote:
> Surely integer 999...9 is a better value than 1000...0 .
>
> Henry Rich
>
> On Aug 9, 2017 18:33, "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

Reply via email to