https://bugs.winehq.org/show_bug.cgi?id=50885
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- I think the issue is somewhere in managed number conversion. Not sure if it's normal, but this shows up in traces:
[00000024: 2.67895 12] ENTER:c System.BitConverter:DoubleToInt64Bits (double)(-0.000000) [00000024: 2.67896 12] LEAVE:c System.BitConverter:DoubleToInt64Bits (double)(lresult=0x8000000000000000
Converting +0.0 or -0.1 gives correct result.