-
Notifications
You must be signed in to change notification settings - Fork 54
/
dec64_string.h
101 lines (80 loc) · 1.61 KB
/
dec64_string.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* dec64_string.h
The dec64_string header file. This is the companion to dec64_string.c.
dec64.com
2018-12-20
Public Domain
No warranty.
*/
enum dec64_string_mode {
engineering_mode,
scientific_mode,
standard_mode
};
typedef char dec64_string_char;
typedef struct dec64_string_state {
/*
For internal use only.
*/
dec64 valid;
dec64 number;
dec64_string_char* string;
int digits[32];
int length;
int nr_digits;
int nr_zeros;
int places;
int separation;
enum dec64_string_mode mode;
dec64_string_char decimal_point;
dec64_string_char separator;
} * dec64_string_state;
/*
creation
*/
extern dec64_string_state dec64_string_begin();
/*
destruction
*/
extern void dec64_string_end(
dec64_string_state state
);
/*
configuration
*/
extern void dec64_string_decimal_point(
dec64_string_state state,
dec64_string_char decimal_point
);
extern void dec64_string_engineering(
dec64_string_state state
);
extern void dec64_string_places(
dec64_string_state state,
dec64_string_char places
);
extern void dec64_string_scientific(
dec64_string_state state
);
extern void dec64_string_separation(
dec64_string_state state,
int separation
);
extern void dec64_string_separator(
dec64_string_state state,
dec64_string_char separator
);
extern void dec64_string_standard(
dec64_string_state state
);
/*
action
*/
extern dec64 dec64_from_string(
dec64_string_state state,
dec64_string_char string[]
);
extern int dec64_to_string(
dec64_string_state state,
dec64 number,
dec64_string_char string[]
);