On Tue, Dec 15, 2015 at 4:54 PM, Andi Kleen <[email protected]> wrote: > From: Andi Kleen <[email protected]> > > When the scaling factor is a full integer don't display fractional > digits. This avoids unnecessary .00 output for topdown metrics > with scale factors. > > Signed-off-by: Andi Kleen <[email protected]> > --- > tools/perf/builtin-stat.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index 0c7cdda..1faa6fc 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -63,6 +63,7 @@ > #include <stdlib.h> > #include <sys/prctl.h> > #include <locale.h> > +#include <math.h> > > #define DEFAULT_SEPARATOR " " > #define CNTR_NOT_SUPPORTED "<not supported>" > @@ -739,12 +740,12 @@ static void abs_printout(int id, int nr, struct > perf_evsel *evsel, double avg) > const char *fmt; > > if (csv_output) { > - fmt = sc != 1.0 ? "%.2f%s" : "%.0f%s"; > + fmt = sc != 1.0 && floor(sc) != sc ? "%.2f%s" : "%.0f%s"; > } else { > if (big_num) > - fmt = sc != 1.0 ? "%'18.2f%s" : "%'18.0f%s"; > + fmt = sc != 1.0 && floor(sc) != sc ? "%'18.2f%s" : > "%'18.0f%s";
if sc is 1.0 then floor(sc) == sc and you'd get the else branch as well, so you probably do not need the sc != 1.0 test anymore. > else > - fmt = sc != 1.0 ? "%18.2f%s" : "%18.0f%s"; > + fmt = sc != 1.0 && floor(sc) != sc ? "%18.2f%s" : > "%18.0f%s"; > } > > aggr_printout(evsel, id, nr); > -- > 2.4.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

