diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml
index cce21ea760c4..ff5e02397cbf 100644
--- a/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml
@@ -11,5 +11,6 @@
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
index d96714325891..e1434e22489c 100644
--- a/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
@@ -75,11 +75,16 @@
-
+
+
+
+
+
+
-
+
diff --git a/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoTotalSection.xml b/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoTotalSection.xml
index a49d06545df0..ca5e297b72ff 100644
--- a/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoTotalSection.xml
+++ b/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoTotalSection.xml
@@ -10,7 +10,7 @@
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
-
+
diff --git a/app/code/Magento/Sales/Test/Mftf/Section/AdminOrderCreditMemosTabSection.xml b/app/code/Magento/Sales/Test/Mftf/Section/AdminOrderCreditMemosTabSection.xml
index f4835cf02b70..bb0e1618c66e 100644
--- a/app/code/Magento/Sales/Test/Mftf/Section/AdminOrderCreditMemosTabSection.xml
+++ b/app/code/Magento/Sales/Test/Mftf/Section/AdminOrderCreditMemosTabSection.xml
@@ -12,5 +12,6 @@
+
\ No newline at end of file
diff --git a/lib/internal/Magento/Framework/Math/FloatComparator.php b/lib/internal/Magento/Framework/Math/FloatComparator.php
new file mode 100644
index 000000000000..405340436995
--- /dev/null
+++ b/lib/internal/Magento/Framework/Math/FloatComparator.php
@@ -0,0 +1,59 @@
+ self::$epsilon;
+ }
+
+ /**
+ * Compares if the first argument greater or equal to the second.
+ *
+ * @param float $a
+ * @param float $b
+ * @return bool
+ */
+ public function greaterThanOrEqual(float $a, float $b): bool
+ {
+ return $this->equal($a, $b) || $this->greaterThan($a, $b);
+ }
+}
diff --git a/lib/internal/Magento/Framework/Math/Test/Unit/FloatComparatorTest.php b/lib/internal/Magento/Framework/Math/Test/Unit/FloatComparatorTest.php
new file mode 100644
index 000000000000..c9e5143ee789
--- /dev/null
+++ b/lib/internal/Magento/Framework/Math/Test/Unit/FloatComparatorTest.php
@@ -0,0 +1,115 @@
+comparator = new FloatComparator();
+ }
+
+ /**
+ * Checks a case when `a` and `b` are equal.
+ *
+ * @param float $a
+ * @param float $b
+ * @param bool $expected
+ * @dataProvider eqDataProvider
+ */
+ public function testEq(float $a, float $b, bool $expected)
+ {
+ self::assertEquals($expected, $this->comparator->equal($a, $b));
+ }
+
+ /**
+ * Gets list of variations to compare equal float.
+ *
+ * @return array
+ */
+ public function eqDataProvider(): array
+ {
+ return [
+ [10, 10.00001, true],
+ [10, 10.000001, true],
+ [10.0000099, 10.00001, true],
+ [1, 1.0001, false],
+ [1, -1.00001, false],
+ ];
+ }
+
+ /**
+ * Checks a case when `a` > `b`.
+ *
+ * @param float $a
+ * @param float $b
+ * @param bool $expected
+ * @dataProvider gtDataProvider
+ */
+ public function testGt(float $a, float $b, bool $expected)
+ {
+ self::assertEquals($expected, $this->comparator->greaterThan($a, $b));
+ }
+
+ /**
+ * Gets list of variations to compare if `a` > `b`.
+ *
+ * @return array
+ */
+ public function gtDataProvider(): array
+ {
+ return [
+ [10, 10.00001, false],
+ [10, 10.000001, false],
+ [10.0000099, 10.00001, false],
+ [1.0001, 1, true],
+ [1, -1.00001, true],
+ ];
+ }
+
+ /**
+ * Checks a case when `a` >= `b`.
+ *
+ * @param float $a
+ * @param float $b
+ * @param bool $expected
+ * @dataProvider gteDataProvider
+ */
+ public function testGte(float $a, float $b, bool $expected)
+ {
+ self::assertEquals($expected, $this->comparator->greaterThanOrEqual($a, $b));
+ }
+
+ /**
+ * Gets list of variations to compare if `a` >= `b`.
+ *
+ * @return array
+ */
+ public function gteDataProvider(): array
+ {
+ return [
+ [10, 10.00001, true],
+ [10, 10.000001, true],
+ [10.0000099, 10.00001, true],
+ [1.0001, 1, true],
+ [1, -1.00001, true],
+ [1.0001, 1.001, false],
+ ];
+ }
+}