From 3654de311fe042687b432afccfd0f307eccdac7f Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 30 Mar 2016 14:23:25 +0200 Subject: [PATCH] Reimplement ftos_mindecimals in a simpler and more correct way --- qcsrc/lib/string.qh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/qcsrc/lib/string.qh b/qcsrc/lib/string.qh index 380afb9ee..384188091 100644 --- a/qcsrc/lib/string.qh +++ b/qcsrc/lib/string.qh @@ -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) -- 2.39.2