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)

Reply via email to