Skip to content

Commit cabce54

Browse files
committed
fix: handle number 0
1 parent 589f561 commit cabce54

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

pandas/_libs/src/parser/tokenizer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1691,7 +1691,7 @@ double precise_xstrtod(const char *str, char **endptr, char decimal, char sci,
16911691
}
16921692

16931693
if (exponent > 308) {
1694-
number = number < 0 ? -HUGE_VAL : HUGE_VAL;
1694+
number = number == 0 ? 0 : number < 0 ? -HUGE_VAL : HUGE_VAL;
16951695
} else if (exponent > 0) {
16961696
number *= e[exponent];
16971697
} else if (exponent < -308) { // Subnormal

pandas/tests/io/parser/common/test_float.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ def test_scientific_no_exponent(all_parsers_all_precisions):
4141
@pytest.mark.parametrize(
4242
"value, expected_value",
4343
[
44+
("0E-617", 0.0),
45+
("0E99999999", 0.0),
46+
("-0E99999999", 0.0),
47+
("-0E-99999999", 0.0),
4448
("10E-617", 0.0),
4549
("10E-100000", 0.0),
4650
("-10E-100000", 0.0),

0 commit comments

Comments
 (0)