History

add hg and python

cinap_lenrek committed 15 years ago

Commit 4bb9e221 parent 987265c3706 files · +1228772 −-233Browse files

Showing the changes to sys/src/cmd/python/Python/atof.c (1 of 3706 files). Show all

Unified · Split

sys/src/cmd/python/Python/atof.c+50−0
@@ -0,0 +1,50 @@
1+
2+/* Just in case you haven't got an atof() around...
3+ This one doesn't check for bad syntax or overflow,
4+ and is slow and inaccurate.
5+ But it's good enough for the occasional string literal... */
6+
7+#include "pyconfig.h"
8+
9+#include <ctype.h>
10+
11+double atof(char *s)
12+{
13+ double a = 0.0;
14+ int e = 0;
15+ int c;
16+ while ((c = *s++) != '\0' && isdigit(c)) {
17+ a = a*10.0 + (c - '0');
18+ }
19+ if (c == '.') {
20+ while ((c = *s++) != '\0' && isdigit(c)) {
21+ a = a*10.0 + (c - '0');
22+ e = e-1;
23+ }
24+ }
25+ if (c == 'e' || c == 'E') {
26+ int sign = 1;
27+ int i = 0;
28+ c = *s++;
29+ if (c == '+')
30+ c = *s++;
31+ else if (c == '-') {
32+ c = *s++;
33+ sign = -1;
34+ }
35+ while (isdigit(c)) {
36+ i = i*10 + (c - '0');
37+ c = *s++;
38+ }
39+ e += i*sign;
40+ }
41+ while (e > 0) {
42+ a *= 10.0;
43+ e--;
44+ }
45+ while (e < 0) {
46+ a *= 0.1;
47+ e++;
48+ }
49+ return a;
50+}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t