diff --git a/src/Carbon/Traits/Units.php b/src/Carbon/Traits/Units.php
index <HASH>..<HASH> 100644
--- a/src/Carbon/Traits/Units.php
+++ b/src/Carbon/Traits/Units.php
@@ -210,6 +210,14 @@ trait Units
         }
 
         if ($unit instanceof DateInterval) {
+            // Can be removed if https://bugs.php.net/bug.php?id=81106
+            // is fixed
+            if (version_compare(PHP_VERSION, '8.1.0-dev', '>=') && ($unit->f < 0 || $unit->f >= 1)) {
+                $seconds = floor($unit->f);
+                $unit->f -= $seconds;
+                $unit->s += $seconds;
+            }
+
             return parent::add($unit);
         }
Work around PHP bug <I>