[PATCH v2] msvcrt: Implement strtod without using 'long double'.

Erich E. Hoover erich.e.hoover at gmail.com
Thu Dec 19 09:52:56 CST 2019


On Thu, Dec 19, 2019 at 2:58 AM Alexandre Julliard <julliard at winehq.org> wrote:
> "Erich E. Hoover" <erich.e.hoover at gmail.com> writes:
>. ..
> > Subject: msvcrt: Implement strtod without using 'long double'.
> >
> > Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48160
> > Signed-off-by: Erich E. Hoover <erich.e.hoover at gmail.com>
> ...
>
> Thanks! Do we still need the control87 call then?

No problem!  Yes, unfortunately calculating 1.7976931348623158e+308
(DBL_MAX) requires 64-bit doubles*.  This works just fine on x86-64,
but x86-32 defaults to 53-bit precision.  However, it would be
possible to only change the precision if we get into the range of
values where it becomes a problem, though that might be a little
complicated to do properly.

> Also we should do the same changes in wcstod().

Would you like that as a separate patch or part of this one?

Best,
Erich

* I am unaware of a way to multiply 1.7976931348623158 by 1e+308 with
53-bit doubles.



More information about the wine-devel mailing list