]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Reimplement ftos_mindecimals in a simpler and more correct way
authorterencehill <piuntn@gmail.com>
Wed, 30 Mar 2016 12:23:25 +0000 (14:23 +0200)
committerterencehill <piuntn@gmail.com>
Wed, 30 Mar 2016 12:23:25 +0000 (14:23 +0200)
qcsrc/lib/string.qh

index 380afb9eeccdbf8a52818efdb5ae29e71fa904f3..384188091d0c4b0c92917bacafd3253707be3fe6 100644 (file)
@@ -286,22 +286,17 @@ string ftos_decimals(float number, int decimals)
 {
        // inhibit stupid negative zero
        if (number == 0) number = 0;
-       // we have sprintf...
        return sprintf("%.*f", decimals, number);
 }
 
-// strips trailing 0s from a float number, e.g. 1.200000 -> 1.2
+/**
+ * converts a number to a string with the minimum number of decimals
+ */
 string ftos_mindecimals(float number)
 {
-       string s = ftos(number);
-       int k = strstrofs(s, ".", 0);
-       if(k >= 0)
-       {
-               int i = strlen(s);
-               while(substring(s, i - 1, 1) == "0") i--;
-               s = substring(s, 0, i);
-       }
-       return s;
+       // inhibit stupid negative zero
+       if (number == 0) number = 0;
+       return sprintf("%.7g", number);
 }
 
 int vercmp_recursive(string v1, string v2)