From 4799ac41e39f92c33ec46efe777138fdc02292d8 Mon Sep 17 00:00:00 2001 From: Jack Huang Date: Fri, 18 Apr 2025 16:40:48 +0800 Subject: [PATCH] Use decimal in multipleOf for the issue of accuracy --- jsonschema/_keywords.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jsonschema/_keywords.py b/jsonschema/_keywords.py index f30f95419..738b2539f 100644 --- a/jsonschema/_keywords.py +++ b/jsonschema/_keywords.py @@ -1,3 +1,4 @@ +from decimal import Decimal from fractions import Fraction import re @@ -169,7 +170,7 @@ def multipleOf(validator, dB, instance, schema): return if isinstance(dB, float): - quotient = instance / dB + quotient = Decimal(str(instance)) / Decimal(str(dB)) try: failed = int(quotient) != quotient except OverflowError: