diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-10-06 05:11:36 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-10-06 05:11:36 +0000 |
commit | f0d016ef382658f790f9cb689fb9b93baf569dc8 (patch) | |
tree | d8a92735db496cf2719ecefe8e68d2180743de21 /gtk/gtkrange.c | |
parent | 73e7b0838c77e37b133b5b2b8df3be2b5ea38254 (diff) | |
download | gtk+-f0d016ef382658f790f9cb689fb9b93baf569dc8.tar.gz |
Replace a really gross way of rounding to a specified number of digits.
2004-10-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
gross way of rounding to a specified number of digits. (#145232,
Peter Zelezny, patch by Soeren Sandmann)
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r-- | gtk/gtkrange.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index fe0b7ab711..80240ef600 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -2390,12 +2390,15 @@ gtk_range_real_change_value (GtkRange *range, if (range->round_digits >= 0) { - char buffer[128]; + glong power; + gint i; - /* This is just so darn lame. */ - g_snprintf (buffer, 128, "%0.*f", - range->round_digits, value); - sscanf (buffer, "%lf", &value); + i = range->round_digits; + power = 1; + while (i--) + power *= 10; + + value = floor ((value * power) + 0.5) / power; } if (range->adjustment->value != value) |