From 9391c82216e916808dcab7d0d033741b7f8cc148 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 14 Dec 2015 16:10:34 -0800 Subject: [PATCH] Print floating point attributes as integers if they are exact integers --- decode.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/decode.cc b/decode.cc index 16738c04..b5c77b33 100644 --- a/decode.cc +++ b/decode.cc @@ -152,10 +152,20 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf(": %lld", (long long) val.int_value()); } else if (val.has_double_value()) { printq(key); - printf(": %g", val.double_value()); + double v = val.double_value(); + if (v == (long long) v) { + printf(": %lld", (long long) v); + } else { + printf(": %g", v); + } } else if (val.has_float_value()) { printq(key); - printf(": %g", val.float_value()); + double v = val.float_value(); + if (v == (long long) v) { + printf(": %lld", (long long) v); + } else { + printf(": %g", v); + } } else if (val.has_sint_value()) { printq(key); printf(": %lld", (long long) val.sint_value());