summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-02-19 15:54:36 (GMT)
committerGuido van Rossum <guido@python.org>1995-02-19 15:54:36 (GMT)
commit2b7e04a9d934afdedde936f2806a6723e62777de (patch)
treef7901ae35e5734590ad263a2a502761b78998d7e /Python
parentc388068431943e7d1760aa52ed06fd6eb7987e39 (diff)
downloadcpython-2b7e04a9d934afdedde936f2806a6723e62777de.zip
cpython-2b7e04a9d934afdedde936f2806a6723e62777de.tar.gz
cpython-2b7e04a9d934afdedde936f2806a6723e62777de.tar.bz2
for __SC__
Diffstat (limited to 'Python')
-rw-r--r--Python/atof.c76
-rw-r--r--Python/strtod.c4
2 files changed, 80 insertions, 0 deletions
diff --git a/Python/atof.c b/Python/atof.c
new file mode 100644
index 0000000..894490a
--- /dev/null
+++ b/Python/atof.c
@@ -0,0 +1,76 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* 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... */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <ctype.h>
+
+double atof(s)
+ 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;
+}
diff --git a/Python/strtod.c b/Python/strtod.c
index bcdef32..dddc98b 100644
--- a/Python/strtod.c
+++ b/Python/strtod.c
@@ -1,3 +1,7 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
/* comp.sources.misc strtod(), as posted in comp.lang.tcl,
with bugfix for "123000.0" and acceptance of space after 'e' sign nuked.