From: Rudolf Polzer Date: Thu, 29 Jul 2010 17:18:18 +0000 (+0200) Subject: simplify ftos_decimals now that we have sprintf X-Git-Tag: xonotic-v0.1.0preview~383^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=ab2ac07944424f976ff8053bc1ac34674115d395;p=xonotic%2Fxonotic-data.pk3dir.git simplify ftos_decimals now that we have sprintf --- diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 9875529d3..72af70111 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -226,43 +226,8 @@ float median(float a, float b, float c) // works for up to 10 decimals! string ftos_decimals(float number, float decimals) { - string result; - string tmp; - float len; - - // if negative, cut off the sign first - if(number < 0) - return strcat("-", ftos_decimals(-number, decimals)); - // it now is always positive! - - // 3.516 -> 352 - number = floor(number * pow(10, decimals) + 0.5); - - // 352 -> "352" - result = ftos(number); - len = strlen(result); - // does it have a decimal point (should not happen)? If there is one, it is always at len-7) - // if ftos had messed it up, which should never happen: "34278.000000" - if(len >= 7) - if(substring(result, len - 7, 1) == ".") - { - dprint("ftos(integer) has comma? Can't be. Affected result: ", result, "\n"); - result = substring(result, 0, len - 7); - len -= 7; - } - // "34278" - if(decimals == 0) - return result; // don't insert a point for zero decimals - // is it too short? If yes, insert leading zeroes - if(len <= decimals) - { - result = strcat(substring("0000000000", 0, decimals - len + 1), result); - len = decimals + 1; - } - // and now... INSERT THE POINT! - tmp = substring(result, len - decimals, decimals); - result = strcat(substring(result, 0, len - decimals), ".", tmp); - return result; + // we have sprintf... + return sprintf("%.*f", decimals, number); } float time;