[bugfix] too long fraction causes overflow

This commit is contained in:
Yuichi Nishiwaki 2015-05-28 00:02:24 +09:00
parent 4cd8dcab60
commit 1fe960716e
1 changed files with 6 additions and 6 deletions

View File

@ -267,21 +267,21 @@ read_suffix(pic_state *pic, struct pic_port *port)
static pic_value
read_unsigned(pic_state *pic, struct pic_port *port, int c)
{
unsigned u, w = 0;
unsigned u;
int exp, s, i, e;
double f;
double f, g;
u = read_uinteger(pic, port, c);
switch (peek(port)) {
case '.':
next(port);
w = 0, f = 1;
g = 0, e = 0;
while (isdigit(c = peek(port))) {
w = w * 10 + next(port) - '0';
f /= 10;
g = g * 10 + (next(port) - '0');
e++;
}
f = u + w * f;
f = u + g * pow(10, -e);
exp = read_suffix(pic, port);
if (exp >= 0) {