diff --git a/cs_util.cc b/cs_util.cc index 20a4e08..dc4dff1 100644 --- a/cs_util.cc +++ b/cs_util.cc @@ -141,17 +141,13 @@ static inline bool parse_gen_float( if (!wn && !fn) { return false; } - if (Hex) { - fn *= -4; - } else { - fn = -fn; - } + fn = -fn; p_set_end(input, end); /* we have a valid number until here */ if (p_read_exp(input, fn)) { p_set_end(input, end); } if (Hex) { - ret = CsFloat(ldexp(r, fn)); + ret = CsFloat(ldexp(r, fn * 4)); } else { ret = CsFloat(r * pow(10, fn)); }