http://bugs.winehq.org/show_bug.cgi?id=4348
--- Comment #9 from Karl Relton karllinuxtest.relton@ntlworld.com 2007-08-22 04:11:47 --- The problem is in dlls/msvcrt/math.c, function _fcvt.
Referring to page http://msdn2.microsoft.com/en-us/library/ex8sf9x0(VS.80).aspx we see the following description of the return string:
"Only digits are stored in the string. The position of the decimal point and the sign of value can be obtained from dec and sign after the call. The dec parameter points to an integer value; this integer value gives the position of the decimal point with respect to the beginning of the string. A zero or negative integer value indicates that the decimal point lies to the left of the first digit. The parameter sign points to an integer indicating the sign of value. The integer is set to 0 if value is positive and is set to a nonzero number if value is negative."
Currently the function returns the complete string with minus sign and decimal point.
Furthermore, it is currently using %e to convert instead of %f.
I am happy to have a crack at fixing this - and will review _ecvt and _gcvt while I am at it.