Considered greater precision of value and increment
diff --git a/erpnext/controllers/item_variant.py b/erpnext/controllers/item_variant.py
index 8cacfc9..c80a5f3 100644
--- a/erpnext/controllers/item_variant.py
+++ b/erpnext/controllers/item_variant.py
@@ -51,7 +51,7 @@
frappe.throw(_("Increment for Attribute {0} cannot be 0").format(attribute))
is_in_range = from_range <= flt(value) <= to_range
- precision = len(cstr(value).split(".")[-1].rstrip("0"))
+ precision = max(len(cstr(value).split(".")[-1].rstrip("0")), len(cstr(increment).split(".")[-1].rstrip("0")))
#avoid precision error by rounding the remainder
remainder = flt((flt(value) - from_range) % increment, precision)