04.07.2017, 19:11
Хранить деньги в Float - крайне плохая затея. Как минимум потому, что эти значения могут быть не точными.
Самым разумным вариантом будет хранить все деньги в центах, тогда будет возможность иметь на руках максимум $21474836.47, да и выводить эти числа можно довольно просто:
Если этого значения не достаточно, то можно воспользоваться библиотекой, которая позволяет работать с переменными, больше, чем 32 бита: https://sampforum.blast.hk/showthread.php?tid=392263
P.S. Если не хочешь париться с выводом значения, как в коде выше, то ты можешь воспользоваться formatex.
Добавить новый спецификатор можно так:
и использовать так:
Самым разумным вариантом будет хранить все деньги в центах, тогда будет возможность иметь на руках максимум $21474836.47, да и выводить эти числа можно довольно просто:
PHP Code:
stock PrintMoney(value)
{
printf("%d.%d", value / 100, value % 100);
}
P.S. Если не хочешь париться с выводом значения, как в коде выше, то ты можешь воспользоваться formatex.
Добавить новый спецификатор можно так:
PHP Code:
FormatSpecifier<\'m\'>(output[], money) {
format(output, sizeof(output), "%d.%d", money / 100, money % 100);
}
PHP Code:
format(string, sizeof(string), "Деньги: %m", money);
SendClientMessage(playerid, -1, string);