From 9ffa9ac6e36ee0b3854a0eb2dc895d536e8e16fd Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sun, 17 Nov 2013 21:03:37 +0100 Subject: [PATCH] libgimpbase: improve gimp_unit_is_metric() Don't directly compare doubles, use "ABS (foo - bar) < epsilon". --- libgimpbase/gimpunit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libgimpbase/gimpunit.c b/libgimpbase/gimpunit.c index a941c7dcb5..1898fa6cac 100644 --- a/libgimpbase/gimpunit.c +++ b/libgimpbase/gimpunit.c @@ -715,8 +715,8 @@ gimp_unit_is_metric (GimpUnit unit) if (factor == 0.0) return FALSE; - return (factor == 25.4 || - factor == 2.54 || - factor == 0.254 || - factor == 0.0254); + return ((ABS (factor - 0.0254) < 1e-7) || /* m */ + (ABS (factor - 0.254) < 1e-6) || /* dm */ + (ABS (factor - 2.54) < 1e-5) || /* cm */ + (ABS (factor - 25.4) < 1e-4)); /* mm */ }