Как сократить большие числа в Unity?
Никак не могу придумать, как сделать так, чтобы при достижении игроком 1000 очков, писало не 1000, а 1к и так же с миллионом: вместо 1.000.000 — 1М.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Если в лоб, то как-то так.
private string ScoreToString(long score)
{
string suffix = "";
if (score > 1000)
{
score /= 1000;
suffix = "к";
}
if (score > 1000)
{
score /= 1000;
suffix = "М";
}
return $"{score}{suffix}";
}
Если избавиться от дубликатов в коде, то так
private readonly string[] _suffixes = new[] { "к", "М" };
private string ScoreToString(long score)
{
int i = 0;
string suffix = "";
while (score > 1000 && i < _suffixes.Length)
{
score /= 1000;
suffix = _suffixes[i];
i++;
}
return $"{score}{suffix}";
}