]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Save milli-units with variable precision
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 4 Sep 2011 22:08:31 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 4 Sep 2011 22:14:14 +0000 (15:14 -0700)
Instead of always using three decimal digits, use 1-3 digits.  But do
use at least one, even for integer numbers, just because it makes it so
much clearer that we're dealing with potential fractional values.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
save-xml.c

index 7609b1db87b2baf2870eea776c717a09f0fe7256..f629b452e1960760a3d61380b3f5733c7b767fdf 100644 (file)
 
 static void show_milli(FILE *f, const char *pre, int value, const char *unit, const char *post)
 {
+       int i;
+       char buf[4];
+       unsigned v;
+
        fputs(pre, f);
+       v = value;
        if (value < 0) {
                putc('-', f);
-               value = -value;
+               v = -value;
+       }
+       for (i = 2; i >= 0; i--) {
+               buf[i] = (v % 10) + '0';
+               v /= 10;
        }
-       fprintf(f, "%u.%03u%s%s", FRACTION(value, 1000), unit, post);
+       buf[3] = 0;
+       if (buf[2] == '0') {
+               buf[2] = 0;
+               if (buf[1] == '0')
+                       buf[1] = 0;
+       }
+
+       fprintf(f, "%u.%s%s%s", v, buf, unit, post);
 }
 
 static void show_temperature(FILE *f, temperature_t temp, const char *pre, const char *post)