diff --git a/dune/xt/common/test/float_cmp.cc b/dune/xt/common/test/float_cmp.cc
index 62ebfc1d497abe56785ec2bc99d5af246bd8213f..94990784b476deac28d8dcbdcbf723b557bcd9c7 100644
--- a/dune/xt/common/test/float_cmp.cc
+++ b/dune/xt/common/test/float_cmp.cc
@@ -57,87 +57,103 @@ struct FloatCmpTest : public testing::Test
   {
 
     TEST_DXTC_EXPECT_FLOAT_EQ(zero, zero);
-    EXPECT_FALSE(FLOATCMP_EQ(zero, eps_plus));
     EXPECT_FALSE(FLOATCMP_EQ(zero, one));
     TEST_DXTC_EXPECT_FLOAT_EQ(one, one + eps_minus);
     EXPECT_FALSE(FLOATCMP_EQ(one, two));
 
-    if (test_config["cmpstyle_is_relative"] == "true")
+    if (test_config["cmpstyle_is_relative"] == "true" && test_config["fieldtype_is_float"] == "true")
       EXPECT_FALSE(FLOATCMP_EQ(zero, eps_minus));
     else
       TEST_DXTC_EXPECT_FLOAT_EQ(zero, eps_minus);
 
-    if (test_config["cmpstyle_is_numpy"] == "true")
+    if (test_config["cmpstyle_is_numpy"] == "true" || test_config["fieldtype_is_float"] == "false")
       TEST_DXTC_EXPECT_FLOAT_EQ(one, one + eps_plus);
     else
-      EXPECT_FALSE(FLOATCMP_EQ(one, one + eps_minus));
+      EXPECT_FALSE(FLOATCMP_EQ(one, one + eps_plus));
+
+    if (test_config["fieldtype_is_float"] == "true")
+      EXPECT_FALSE(FLOATCMP_EQ(zero, eps_plus));
+    else
+      TEST_DXTC_EXPECT_FLOAT_EQ(zero, eps_plus);
   }
 
   void check_ne()
   {
     EXPECT_FALSE(FLOATCMP_NE(zero, zero));
-    TEST_DXTC_EXPECT_FLOAT_NE(zero, eps_minus);
     TEST_DXTC_EXPECT_FLOAT_NE(zero, one);
     EXPECT_FALSE(FLOATCMP_NE(one, one + eps_minus));
     TEST_DXTC_EXPECT_FLOAT_NE(one, two);
 
-    if (test_config["cmpstyle_is_relative"] == "true")
+    if (test_config["cmpstyle_is_relative"] == "true" && test_config["fieldtype_is_float"] == "true")
       TEST_DXTC_EXPECT_FLOAT_NE(zero, eps_minus);
     else
       EXPECT_FALSE(FLOATCMP_NE(zero, eps_minus));
 
-    if (test_config["cmpstyle_is_numpy"] == "true")
-      EXPECT_FALSE(FLOATCMP_NE(one, one + eps_minus));
+    if (test_config["cmpstyle_is_numpy"] == "true" || test_config["fieldtype_is_float"] == "false")
+      EXPECT_FALSE(FLOATCMP_NE(one, one + eps_plus));
+    else
+      TEST_DXTC_EXPECT_FLOAT_NE(one, one + eps_plus);
+
+    if (test_config["fieldtype_is_float"] == "true")
+      TEST_DXTC_EXPECT_FLOAT_NE(zero, eps_plus);
     else
-      TEST_DXTC_EXPECT_FLOAT_NE(one, one + eps_minus);
+      EXPECT_FALSE(FLOATCMP_NE(zero, eps_plus));
   }
 
   void check_gt()
   {
     EXPECT_FALSE(FLOATCMP_GT(zero, zero));
-    TEST_DXTC_EXPECT_FLOAT_GT(eps_minus, zero);
     TEST_DXTC_EXPECT_FLOAT_GT(one, zero);
     EXPECT_FALSE(FLOATCMP_GT(one + eps_minus, one));
     TEST_DXTC_EXPECT_FLOAT_GT(two, one);
 
-    if (test_config["cmpstyle_is_relative"] == "true")
+    if (test_config["cmpstyle_is_relative"] == "true" && test_config["fieldtype_is_float"] == "true")
       TEST_DXTC_EXPECT_FLOAT_GT(eps_minus, zero);
     else
       EXPECT_FALSE(FLOATCMP_GT(eps_minus, zero));
 
-    if (test_config["cmpstyle_is_numpy"] == "true")
-      EXPECT_FALSE(FLOATCMP_GT(one + eps_minus, one));
+    if (test_config["cmpstyle_is_numpy"] == "true" || test_config["fieldtype_is_float"] == "false")
+      EXPECT_FALSE(FLOATCMP_GT(one + eps_plus, one));
+    else
+      TEST_DXTC_EXPECT_FLOAT_GT(one + eps_plus, one);
+
+    if (test_config["fieldtype_is_float"] == "true")
+      TEST_DXTC_EXPECT_FLOAT_GT(eps_plus, zero);
     else
-      TEST_DXTC_EXPECT_FLOAT_GT(one + eps_minus, one);
+      EXPECT_FALSE(FLOATCMP_GT(eps_plus, zero));
   }
 
   void check_lt()
   {
     EXPECT_FALSE(FLOATCMP_LT(zero, zero));
-    TEST_DXTC_EXPECT_FLOAT_LT(zero, eps_minus);
     TEST_DXTC_EXPECT_FLOAT_LT(zero, one);
     EXPECT_FALSE(FLOATCMP_LT(one, one + eps_minus));
     TEST_DXTC_EXPECT_FLOAT_LT(one, two);
 
-    if (test_config["cmpstyle_is_relative"] == "true")
+    if (test_config["cmpstyle_is_relative"] == "true" && test_config["fieldtype_is_float"] == "true")
       TEST_DXTC_EXPECT_FLOAT_LT(zero, eps_minus);
     else
       EXPECT_FALSE(FLOATCMP_LT(zero, eps_minus));
 
-    if (test_config["cmpstyle_is_numpy"] == "true")
-      EXPECT_FALSE(FLOATCMP_LT(one, one + eps_minus));
+    if (test_config["cmpstyle_is_numpy"] == "true" || test_config["fieldtype_is_float"] == "false")
+      EXPECT_FALSE(FLOATCMP_LT(one, one + eps_plus));
     else
-      TEST_DXTC_EXPECT_FLOAT_LT(one, one + eps_minus);
+      TEST_DXTC_EXPECT_FLOAT_LT(one, one + eps_plus);
+
+    if (test_config["fieldtype_is_float"] == "true")
+      TEST_DXTC_EXPECT_FLOAT_LT(zero, eps_plus);
+    else
+      EXPECT_FALSE(FLOATCMP_LT(zero, eps_plus));
   }
 
   void check_ge()
   {
     TEST_DXTC_EXPECT_FLOAT_GE(zero, zero);
     TEST_DXTC_EXPECT_FLOAT_GE(eps_minus, zero);
-    TEST_DXTC_EXPECT_FLOAT_GE(eps_minus, zero);
+    TEST_DXTC_EXPECT_FLOAT_GE(eps_plus, zero);
     TEST_DXTC_EXPECT_FLOAT_GE(one, zero);
     TEST_DXTC_EXPECT_FLOAT_GE(one + eps_minus, one);
-    TEST_DXTC_EXPECT_FLOAT_GE(one + eps_minus, one);
+    TEST_DXTC_EXPECT_FLOAT_GE(one + eps_plus, one);
     TEST_DXTC_EXPECT_FLOAT_GE(two, one);
   }
 
@@ -145,10 +161,10 @@ struct FloatCmpTest : public testing::Test
   {
     TEST_DXTC_EXPECT_FLOAT_LE(zero, zero);
     TEST_DXTC_EXPECT_FLOAT_LE(zero, eps_minus);
-    TEST_DXTC_EXPECT_FLOAT_LE(zero, eps_minus);
+    TEST_DXTC_EXPECT_FLOAT_LE(zero, eps_plus);
     TEST_DXTC_EXPECT_FLOAT_LE(zero, one);
     TEST_DXTC_EXPECT_FLOAT_LE(one, one + eps_minus);
-    TEST_DXTC_EXPECT_FLOAT_LE(one, one + eps_minus);
+    TEST_DXTC_EXPECT_FLOAT_LE(one, one + eps_plus);
     TEST_DXTC_EXPECT_FLOAT_LE(one, two);
   }
 }; // struct FloatCmpBase
diff --git a/dune/xt/common/test/float_cmp.mini b/dune/xt/common/test/float_cmp.mini
index dd0468402d059d07ad53b90f956cce0a01b0cb99..8a10475c75ba62bb7d2b178b6b550ad7b2a2dcb8 100644
--- a/dune/xt/common/test/float_cmp.mini
+++ b/dune/xt/common/test/float_cmp.mini
@@ -21,6 +21,7 @@ __local.vec_size = 4
 [test_common_float_cmp]
 cmpstyle_is_relative = false, {__local.cmpstyle_is_relative} | expand cmpstyle_templ
 cmpstyle_is_numpy = true, {__local.cmpstyle_is_numpy} | expand cmpstyle_templ
+fieldtype_is_float = false, true, true | expand field
 
 [__static]
 TESTTYPE = {__local.testtype}