diff --git a/addons/mrp/report/mrp_report_bom_structure.py b/addons/mrp/report/mrp_report_bom_structure.py
index a009d9d49d6da0fd9612081837695a9b63387c03..7a02ccbf205af996b58a31ec3d4caf54f639f524 100644
--- a/addons/mrp/report/mrp_report_bom_structure.py
+++ b/addons/mrp/report/mrp_report_bom_structure.py
@@ -18,7 +18,7 @@ class ReportBomStructure(models.AbstractModel):
             candidates = variant and self.env['product.product'].browse(variant) or bom.product_tmpl_id.product_variant_ids
             for product_variant_id in candidates:
                 if data and data.get('childs'):
-                    doc = self._get_pdf_line(bom_id, product_id=product_variant_id, qty=int(data.get('quantity')), child_bom_ids=json.loads(data.get('childs')))
+                    doc = self._get_pdf_line(bom_id, product_id=product_variant_id, qty=float(data.get('quantity')), child_bom_ids=json.loads(data.get('childs')))
                 else:
                     doc = self._get_pdf_line(bom_id, product_id=product_variant_id, unfolded=True)
                 doc['report_type'] = 'pdf'
@@ -26,7 +26,7 @@ class ReportBomStructure(models.AbstractModel):
                 docs.append(doc)
             if not candidates:
                 if data and data.get('childs'):
-                    doc = self._get_pdf_line(bom_id, qty=int(data.get('quantity')), child_bom_ids=json.loads(data.get('childs')))
+                    doc = self._get_pdf_line(bom_id, qty=float(data.get('quantity')), child_bom_ids=json.loads(data.get('childs')))
                 else:
                     doc = self._get_pdf_line(bom_id, unfolded=True)
                 doc['report_type'] = 'pdf'
diff --git a/addons/mrp/static/src/xml/mrp.xml b/addons/mrp/static/src/xml/mrp.xml
index e9c73b960528601d9489a8aaea790763729091e9..5791fc2f9c006700e9a17e75b7751bd4b8b0d88e 100644
--- a/addons/mrp/static/src/xml/mrp.xml
+++ b/addons/mrp/static/src/xml/mrp.xml
@@ -10,7 +10,7 @@
             <label>Quantity:</label>
             <div class="row">
                 <div class="col-lg-6">
-                    <input type="number" t-att-value="bom_qty" min="1" class="o_input o_mrp_bom_report_qty"/>
+                    <input type="number" step="any" t-att-value="bom_qty" min="1" class="o_input o_mrp_bom_report_qty"/>
                 </div>
                 <div class="col-lg-6">
                     <t t-if="is_uom_applied" t-esc="bom_uom_name"/>