Casting double to ulong weirdness

via Digitalmars-d digitalmars-d at puremagic.com
Mon Aug 24 09:52:53 PDT 2015


I'm posting this here for visibility. This was silently 
corrupting our data, and might be doing the same for others as 
well.

import std.stdio;
void main() {
   double x = 1.2;
   writeln(cast(ulong)(x * 10.0));
   double y = 1.2 * 10.0;
   writeln(cast(ulong)y);
}

Output:
11
12


to!ulong instead of the cast does the right thing, and is a 
viable work-around.

Issue: https://issues.dlang.org/show_bug.cgi?id=14958)


More information about the Digitalmars-d mailing list