diff --git a/tools/profiling/microbenchmarks/bm_json.py b/tools/profiling/microbenchmarks/bm_json.py
index 604823712f91e6f18072ff21a29f4ce2ca66beca..c48a63b791fd2c0838208295b3b929af9dc4f84e 100644
--- a/tools/profiling/microbenchmarks/bm_json.py
+++ b/tools/profiling/microbenchmarks/bm_json.py
@@ -103,11 +103,11 @@ _BM_SPECS = {
 def numericalize(s):
   if not s: return ''
   if s[-1] == 'k':
-    return int(s[:-1]) * 1024
+    return float(s[:-1]) * 1024
   if s[-1] == 'M':
-    return int(s[:-1]) * 1024 * 1024
+    return float(s[:-1]) * 1024 * 1024
   if 0 <= (ord(s[-1]) - ord('0')) <= 9:
-    return int(s)
+    return float(s)
   assert 'not a number: %s' % s
 
 def parse_name(name):