This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: strtod (and atof) on hex numbers

I have integrated a newer version of strtod from David M. Gay's gdtoa FreeBSD code. This code has the C99 support in question including nan and inf support. I have tested on x86-linux and mn10300.

As usual, please run it through its paces on Cygwin and let me know if there are any problems.

-- Jeff J.

Jeff Johnston wrote:
This is a C99 extension to strtod over original ANSI C90 which is what newlib started with. I'll start working on it, but don't expect anything too quick.

-- Jeff J.

Corinna Vinschen wrote:

This is a newlib issue.  I redirected this to the appropriate mailing
list newlib AT sourceware DOT org.

On Jun 20 13:00, Paul Biggar wrote:


atof (and hence strtod) on hexadecimal numbers results in 0.0 (errno
of 0). This may be related to an old issue where NaN isnt correctly
parsed. I believe it isnt correct behaviour:

I've tested it for integers in the range 0x8000000 to 0xFFFFFFFF. It
works properly on

ubuntu dapper, gcc 4.1 on i386;
debian stable, gcc 3.3 on amd64
sunos ?, gcc 3.4 on sparc

I'm using standard cygwin distribution, which uses gcc 3.4.4 (cygming special)

Sample code:

#include "limits.h"
#include <iostream.h>
#include "errno.h"

int main()

      cout << ULONG_MAX << endl;
      cout << 0xFFFFFFFF << endl;

      errno = 0;
      cout << atof("0xFFFFFFFF") << endl;
      cout << errno << endl;

      errno = 0;
      cout << strtod("0xFFFFFFFF", NULL) << endl;
      cout << errno << endl;


Is this being fixed? I could find a mention of it before. Does anyone know a simple workaround?



Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]