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
11double 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