summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKasyap Pentamaraju <vpentamaraju@webmd.net>2025-11-07 10:31:53 +0530
committerJacob Walls <jacobtylerwalls@gmail.com>2025-11-10 14:45:48 -0500
commitfffa64abc3870989d62659453cb302857c539956 (patch)
treeef18645bcf2a23bab31b4179603a7a5dbd84d7ab
parente78420c2b8ef62acb6b7a37b71e3aa6833d630fb (diff)
Fixed #36715 -- Handled non-finite Decimals in intcomma filter.
-rw-r--r--django/utils/numberformat.py3
-rw-r--r--tests/humanize_tests/tests.py6
2 files changed, 9 insertions, 0 deletions
diff --git a/django/utils/numberformat.py b/django/utils/numberformat.py
index f621ff64b4..c064ce6918 100644
--- a/django/utils/numberformat.py
+++ b/django/utils/numberformat.py
@@ -48,6 +48,9 @@ def format(
if abs(number) < cutoff:
number = Decimal("0")
+ if not number.is_finite():
+ return str(number)
+
# Format values with more than 200 digits (an arbitrary cutoff) using
# scientific notation to avoid high memory usage in {:f}'.format().
_, digits, exponent = number.as_tuple()
diff --git a/tests/humanize_tests/tests.py b/tests/humanize_tests/tests.py
index b9f1e58ef7..7c2863d3c4 100644
--- a/tests/humanize_tests/tests.py
+++ b/tests/humanize_tests/tests.py
@@ -153,6 +153,9 @@ class HumanizeTests(SimpleTestCase):
"-1234567.1234567",
Decimal("1234567.1234567"),
Decimal("-1234567.1234567"),
+ Decimal("Infinity"),
+ Decimal("-Infinity"),
+ Decimal("NaN"),
None,
"1234567",
"-1234567",
@@ -193,6 +196,9 @@ class HumanizeTests(SimpleTestCase):
"-1,234,567.1234567",
"1,234,567.1234567",
"-1,234,567.1234567",
+ "Infinity",
+ "-Infinity",
+ "NaN",
None,
"1,234,567",
"-1,234,567",