diff --git a/Base/Math/Numeric.cpp b/Base/Math/Numeric.cpp
index 3f1f4eb829fbdbc7fa93d68a3c7d53bf5d73b86c..0e514680d7ac257728256006dbed74eea53d77cd 100644
--- a/Base/Math/Numeric.cpp
+++ b/Base/Math/Numeric.cpp
@@ -46,3 +46,8 @@ bool Numeric::almostEqual(const R3& a, const R3& b, int ulp)
     return almostEqual(a.x(), b.x(), ulp) && almostEqual(a.y(), b.y(), ulp)
            && almostEqual(a.z(), b.z(), ulp);
 }
+
+double Numeric::ignoreDenormalized(double value)
+{
+    return (std::fpclassify(value) == FP_SUBNORMAL) ? 0.0 : value;
+}
diff --git a/Base/Math/Numeric.h b/Base/Math/Numeric.h
index 9659cc18db74a8805e8f1e93e3751719f17ac9af..f49c7240d8686be030f2e8bc3f45ea3bf49110b1 100644
--- a/Base/Math/Numeric.h
+++ b/Base/Math/Numeric.h
@@ -32,6 +32,7 @@ double relativeDifference(double a, double b);
 bool almostEqual(double a, double b, int ulp);
 bool almostEqual(const R3& a, const R3& b, int ulp);
 
+double ignoreDenormalized(double value);
 
 } // namespace Numeric