projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* device/include/pic16/pic18f25j10.h,
[fw/sdcc]
/
device
/
lib
/
_atof.c
diff --git
a/device/lib/_atof.c
b/device/lib/_atof.c
index ee7ff24be1ebb36ee6cbeda4706055ff2dda0d22..0b897cbe29cd69fed79bc89584b44651ec722f73 100644
(file)
--- a/
device/lib/_atof.c
+++ b/
device/lib/_atof.c
@@
-1,6
+1,6
@@
/* atof.c: converts an ASCII string to float
/* atof.c: converts an ASCII string to float
- Copyright (C) 2003 Jesus Calvino-Fraga, jesusc@ieee.org
+ Copyright (C) 2003 Jesus Calvino-Fraga, jesusc@ieee.org
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@
-18,16
+18,13
@@
#include <ctype.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdlib.h>
+#include <stdbool.h>
float atof(char * s)
{
float value, fraction;
char iexp;
float atof(char * s)
{
float value, fraction;
char iexp;
-#ifdef SDCC_mcs51
- bit sign;
-#else
- char sign;
-#endif
+ BOOL sign;
//Skip leading blanks
while (isspace(*s)) s++;
//Skip leading blanks
while (isspace(*s)) s++;
@@
-51,13
+48,13
@@
float atof(char * s)
}
//Get the fraction
}
//Get the fraction
- if (*s
==
'.')
+ if (*s
==
'.')
{
s++;
{
s++;
- for (fraction=
10.0
; isdigit(*s); s++)
+ for (fraction=
0.1
; isdigit(*s); s++)
{
{
- value+=(*s-'0')
/
fraction;
- fraction*=
10.0
;
+ value+=(*s-'0')
*
fraction;
+ fraction*=
0.1
;
}
}
}
}
@@
-65,14
+62,13
@@
float atof(char * s)
if (toupper(*s)=='E')
{
s++;
if (toupper(*s)=='E')
{
s++;
- while(*s=='0') s++;//So atoi doesn't return an octal number
iexp=(char)atoi(s);
{
while(iexp!=0)
{
if(iexp<0)
{
iexp=(char)atoi(s);
{
while(iexp!=0)
{
if(iexp<0)
{
- value
/=10.0
;
+ value
*=0.1
;
iexp++;
}
else
iexp++;
}
else