Strange result with nextUp for reals
Ali Çehreli
acehreli at yahoo.com
Sun Feb 16 13:48:33 PST 2014
On 02/16/2014 01:42 PM, Andrej Mitrovic wrote:
> -----
> import std.math;
> import std.stdio;
>
> void main()
> {
> writefln("nextUp of %a is %a", 1.0, 1.0.nextUp());
That line uses doubles.
>
> real num = 1.0;
> writefln("nextUp of %a is %a", num, num.nextUp());
That one uses reals.
> }
> -----
>
> This prints:
>
> nextUp of 0x1p+0 is 0x1.0000000000001p+0
> nextUp of 0x1p+0 is 0x1.0000000000000002p+0
>
> Any idea why the results are different?
There is no difference. They are both 1. ;)
The type of floating point literals is double. You are seeing the
precision difference between doubles and reals.
Ali
More information about the Digitalmars-d-learn
mailing list