delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/06/20/13:00:59

X-Spam-Check-By: sourceware.org
Message-ID: <af54caaf0606201000o4df93c69scbc55bf24f12915d@mail.gmail.com>
Date: Tue, 20 Jun 2006 13:00:45 -0400
From: "Paul Biggar" <paul DOT biggar AT gmail DOT com>
To: cygwin AT cygwin DOT com
Subject: strtod (and atof) on hex numbers
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Hi,

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:

http://www.opengroup.org/onlinepubs/000095399/functions/atof.html



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?

Thanks
Paul



-- 
Paul Biggar
paul DOT biggar AT gmail DOT com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019