Есть игра, у игрока есть баланс. Указывал его через
ulong
но очень скоро тип переполняется. Возможно реализовать бесконечный баланс, при этом оставить у него математические функции и оставить возможность сокращения?
пример:
105 550 = 105.55K
150 893 945 = 150.89M
и тд.
В данный момент код сокращения:
public string[] names = { "", "K", "M", "B", "T" };
public string FormatMoney(decimal digit) // Сокращение баланса
{
if(digit == 0)
{
return digit.ToString(CultureInfo.InvariantCulture);
}
else
{
var n = 0;
while (n + 1 < names.Length && digit >= 1000m)
{
digit /= 1000m;
n++;
}
return digit.ToString("#.##") + names[n];
}
}