Staging
v0.5.1
https://github.com/python/cpython
Revision b6b7a3ac4713a9df4faed774aa8868cf507adbb8 authored by Tim Peters on 16 March 2006, 01:56:34 UTC, committed by Tim Peters on 16 March 2006, 01:56:34 UTC
Change the Windows buildbot "clean" step to remove
stale .pyc files.
1 parent 854e918
Raw File
Tip revision: b6b7a3ac4713a9df4faed774aa8868cf507adbb8 authored by Tim Peters on 16 March 2006, 01:56:34 UTC
Merge rev 43061 from the trunk.
Tip revision: b6b7a3a
atof.c

/* Just in case you haven't got an atof() around...
   This one doesn't check for bad syntax or overflow,
   and is slow and inaccurate.
   But it's good enough for the occasional string literal... */

#include "pyconfig.h"

#include <ctype.h>

double atof(char *s)
{
	double a = 0.0;
	int e = 0;
	int c;
	while ((c = *s++) != '\0' && isdigit(c)) {
		a = a*10.0 + (c - '0');
	}
	if (c == '.') {
		while ((c = *s++) != '\0' && isdigit(c)) {
			a = a*10.0 + (c - '0');
			e = e-1;
		}
	}
	if (c == 'e' || c == 'E') {
		int sign = 1;
		int i = 0;
		c = *s++;
		if (c == '+')
			c = *s++;
		else if (c == '-') {
			c = *s++;
			sign = -1;
		}
		while (isdigit(c)) {
			i = i*10 + (c - '0');
			c = *s++;
		}
		e += i*sign;
	}
	while (e > 0) {
		a *= 10.0;
		e--;
	}
	while (e < 0) {
		a *= 0.1;
		e++;
	}
	return a;
}
back to top