diff --git a/src/humanize/number.py b/src/humanize/number.py index 52a5356a..1dfabdad 100644 --- a/src/humanize/number.py +++ b/src/humanize/number.py @@ -380,6 +380,9 @@ def fractional(value: NumberOrString) -> str: """ import math + if isinstance(value, int): + return str(int(value)) + try: number = float(value) if not math.isfinite(number): diff --git a/tests/test_number.py b/tests/test_number.py index 5fb12fa6..f18eee9d 100644 --- a/tests/test_number.py +++ b/tests/test_number.py @@ -216,6 +216,12 @@ def test_apnumber(test_input: int | str, expected: str) -> None: "test_input, expected", [ (1, "1"), + (True, "1"), + (False, "0"), + (2**53 + 1, "9007199254740993"), + (-(2**53 + 1), "-9007199254740993"), + (10**400, "1" + "0" * 400), + (-(10**400), "-1" + "0" * 400), (2.0, "2"), (4.0 / 3.0, "1 1/3"), (5.0 / 6.0, "5/6"),