fix: use `float_precision` while checking for negative stock in BIN
diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.py b/erpnext/stock/doctype/stock_settings/stock_settings.py
index c9b75a1..e25c843 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.py
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.py
@@ -139,9 +139,15 @@
 
 				else:
 					# Don't allow if there are negative stock
-					has_negative_stock = frappe.db.exists("Bin", {"actual_qty": ["<", 0]})
+					from frappe.query_builder.functions import Round
 
-					if has_negative_stock:
+					precision = frappe.db.get_single_value("System Settings", "float_precision") or 3
+					bin = frappe.qb.DocType("Bin")
+					bin_with_negative_stock = (
+						frappe.qb.from_(bin).select(bin.name).where(Round(bin.actual_qty, precision) < 0).limit(1)
+					).run()
+
+					if bin_with_negative_stock:
 						frappe.throw(
 							_("As there are negative stock, you can not enable {0}.").format(
 								frappe.bold("Stock Reservation")