@@ -327,32 +327,32 @@ static char *FormatNumber(char *buff, in
static const int max_digits = 20;
uint64 divisor = 10000000000000000000ULL;
zerofill += fractional_digits;
int thousands_offset = (max_digits - fractional_digits - 1) % 3;
if (number < 0) {
buff += seprintf(buff, last, "-");
if (buff != last) *buff++ = '-';
number = -number;
}
uint64 num = number;
uint64 tot = 0;
for (int i = 0; i < max_digits; i++) {
if (i == max_digits - fractional_digits) {
const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str();
if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator;
buff += seprintf(buff, last, "%s", decimal_separator);
buff = strecpy(buff, decimal_separator, last);
uint64 quot = 0;
if (num >= divisor) {
quot = num / divisor;
num = num % divisor;
if ((tot |= quot) || i >= max_digits - zerofill) {
buff += seprintf(buff, last, "%i", (int)quot);
if (buff != last) *buff++ = '0' + quot; // quot is a single digit
if ((i % 3) == thousands_offset && i < max_digits - 1 - fractional_digits) buff = strecpy(buff, separator, last);
divisor /= 10;
Status change: