Thread overview
Re: log2 buggy or is a real thing?
Apr 04, 2012
bearophile
Apr 04, 2012
Timon Gehr
Apr 04, 2012
Don Clugston
April 04, 2012
Do you know why is this program:

import std.stdio;
void main() {
    real r = 9223372036854775808UL;
    writefln("%1.19f", r);
}

Printing:
9223372036854775807.8000000000000000000

Instead of this?
9223372036854775808.0000000000000000000

Bye,
bearophile
April 04, 2012
On 04/04/2012 01:46 PM, bearophile wrote:
> Do you know why is this program:
>
> import std.stdio;
> void main() {
>      real r = 9223372036854775808UL;
>      writefln("%1.19f", r);
> }
>
> Printing:
> 9223372036854775807.8000000000000000000
>
> Instead of this?
> 9223372036854775808.0000000000000000000
>
> Bye,
> bearophile

Works correctly here. (x64 linux)
April 04, 2012
On 04/04/12 13:46, bearophile wrote:
> Do you know why is this program:
>
> import std.stdio;
> void main() {
>      real r = 9223372036854775808UL;
>      writefln("%1.19f", r);
> }
>
> Printing:
> 9223372036854775807.8000000000000000000
>
> Instead of this?
> 9223372036854775808.0000000000000000000
>
> Bye,
> bearophile

Poor float->decimal conversion in the C library ftoa() function.