fix: Safe cast `row.rate` (in case of faulty exploded items, edge case but oh well)
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 15048ec..7055efa 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -699,7 +699,7 @@
 		for row in self.get("exploded_items"):
 			old_rate = flt(row.rate)
 			row.rate = rm_rate_map.get(row.item_code)
-			row.amount = flt(row.stock_qty) * row.rate
+			row.amount = flt(row.stock_qty) * flt(row.rate)
 
 			if old_rate != row.rate:
 				# Only db_update if changed