diff --git a/src/xpdev/genwrap.c b/src/xpdev/genwrap.c index 559d7c18093ac32bf443c6da4fbb7b553d1cb476..196924e65b892d0b4227680b549fd638bf0da19b 100644 --- a/src/xpdev/genwrap.c +++ b/src/xpdev/genwrap.c @@ -514,7 +514,9 @@ long double DLLCALL xp_timer(void) ret=((long double)tick.HighPart*4294967296)+((long double)tick.LowPart); ret /= ((long double)freq.HighPart*4294967296)+((long double)freq.LowPart); #else - ret=((long double)tick.QuadPart)/freq.QuadPart; + /* In MSVC, a long double does NOT have 19 decimals of precision */ + ret=((long int)(tick.QuadPart/freq.QuadPart)) + +(((long double)(tick.QuadPart%freq.QuadPart))/freq.QuadPart); #endif } else {