diff --git a/vendor/magento/module-sales/Model/Order/Invoice/Total/Discount.php b/vendor/magento/module-sales/Model/Order/Invoice/Total/Discount.php
--- a/vendor/magento/module-sales/Model/Order/Invoice/Total/Discount.php
+++ b/vendor/magento/module-sales/Model/Order/Invoice/Total/Discount.php
@@ -71,10 +71,10 @@
         $invoice->setDiscountAmount(-$totalDiscountAmount);
         $invoice->setBaseDiscountAmount(-$baseTotalDiscountAmount);
 
-        $grandTotal = $invoice->getGrandTotal() - $totalDiscountAmount < 0.0001
-            ? 0 : $invoice->getGrandTotal() - $totalDiscountAmount;
-        $baseGrandTotal = $invoice->getBaseGrandTotal() - $baseTotalDiscountAmount < 0.0001
-            ? 0 : $invoice->getBaseGrandTotal() - $baseTotalDiscountAmount;
+        $grandTotal = abs($invoice->getGrandTotal() - $totalDiscountAmount) < 0.0001
+             ? 0 : $invoice->getGrandTotal() - $totalDiscountAmount;
+        $baseGrandTotal = abs($invoice->getBaseGrandTotal() - $baseTotalDiscountAmount) < 0.0001
+             ? 0 : $invoice->getBaseGrandTotal() - $baseTotalDiscountAmount;
         $invoice->setGrandTotal($grandTotal);
         $invoice->setBaseGrandTotal($baseGrandTotal);
         return $this;
