]> sigrok.org Git - pulseview.git/blobdiff - pv/util.cpp
Fixes
[pulseview.git] / pv / util.cpp
index 49b9467c1642737a1a995df5adcb622e2bbddfa1..9a9a5065a2e17180eb6cdebb71b4aefc07fb5833 100644 (file)
@@ -138,8 +138,8 @@ QString format_time_si(const Timestamp& v, SIPrefix prefix,
        QTextStream ts(&s);
        if (sign && !v.is_zero())
                ts << forcesign;
-       ts << qSetRealNumberPrecision(precision) << (v * multiplier) << ' '
-               << prefix << unit;
+       ts << qSetRealNumberPrecision(precision) << (v * multiplier);
+       ts << ' ' << prefix << unit;
 
        return s;
 }
@@ -161,6 +161,10 @@ QString format_value_si(double v, SIPrefix prefix, unsigned precision,
                                exp -= 3;
                        }
                }
+
+               const int prefix_order = -exponent(prefix);
+               precision = (prefix >= SIPrefix::none) ? max((int)(precision + prefix_order), 0) :
+                       max((int)(precision - prefix_order), 0);
        }
 
        assert(prefix >= SIPrefix::yocto);