From: Sage Weil Date: Thu, 31 Jul 2014 00:50:39 +0000 (-0700) Subject: mon/OSDMonitor: fix i386 floating point rounding error X-Git-Tag: v0.84~36^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F2173%2Fhead;p=ceph.git mon/OSDMonitor: fix i386 floating point rounding error This would round .123 to .122999 on i386; now it does not. Backport: firefly Signed-off-by: Sage Weil --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index e546647bd721..a8c2c64c6b45 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -3684,7 +3684,7 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, ss << "value must be in the range 0..1"; return -ERANGE; } - p.cache_target_dirty_ratio_micro = f * 1000000; + p.cache_target_dirty_ratio_micro = f * (double)1000000.0; } else if (var == "cache_target_full_ratio") { if (floaterr.length()) { ss << "error parsing float '" << val << "': " << floaterr; @@ -3694,7 +3694,7 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, ss << "value must be in the range 0..1"; return -ERANGE; } - p.cache_target_full_ratio_micro = f * 1000000; + p.cache_target_full_ratio_micro = f * (double)1000000.0; } else if (var == "cache_min_flush_age") { if (interr.length()) { ss << "error parsing int '" << val << "': " << interr;