https://issues.dlang.org/show_bug.cgi?id=14958
Issue ID: 14958
Summary: Casting a double to ulong sometimes produces wrong
results
Product: D
Version: D2
Hardware: All
OS: Windows
Status: NEW
Severity: critical
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
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.
--