Я пытаюсь сделать игру кликером в ООН. В настоящее время я использую двойники как способ показа больших чисел. Однако, когда я получаю какие-либо числа, превышающие триллион, это достигает -1354 триллионов или что-то в этом роде. Код, показанный ниже, представляет собой код для заполнения больших чисел как «___ Миллион» или «____ миллиардов», но как только он пройдет 999 миллиардов, будет показано «-1354 триллиона». Он продолжает действовать как триллион долларов, так как вы можете покупать предметы за явно отрицательные деньги, но на дисплее все не так.
Я попытался изменить double на int, long и float, и все они приводят к одной и той же проблеме. Я также пробовал еще большие числа, но они даже не работают в системе. Похоже, что 999 миллиардов - это предел, прежде чем он полностью раскроет ад.
public static string largeWholeNumbers(double number)
{
int numOfZeros = (number.ToString()).Length; //Gets Length of number
int zeroSets = (int)Mathf.Floor(numOfZeros / 3.001f); //Divides it by a little over 3 and floors it
double numDisplay = number/(power(10, ((2 *zeroSets) + (zeroSets - 1)))); //Get the thing infront of the illion (IE 134, 6 million)
//Defines
string numberName = "";
int hugeNumberSet = 0;
int hugeNumberStart = 0;
int hugeNumberStartIndex = 0;
int hugeNumberEnd = 0;
if (zeroSets < 11)
{
zeroSets -= 2;
numberName = numberEndings.wholeNumEndings[zeroSets];
}
if (zeroSets > 10)
{
hugeNumberSet = (int)Mathf.Floor((zeroSets - 1)/10); //Divides it by 10 to get 10, 20, 30 etc
hugeNumberEnd = hugeNumberSet - 1;
hugeNumberStart = zeroSets - (hugeNumberSet * 10); //Example zeroSet = 12, this = 2
hugeNumberStartIndex = hugeNumberStart - 1;
if (hugeNumberStart < 1)
{
numberName = numberEndings.endNumEndings[hugeNumberEnd];
}
if (hugeNumberStart >= 1)
{
numberName = numberEndings.endNumEndings[hugeNumberEnd] + numberEndings.beginNumEndings[hugeNumberStartIndex];
}
}
return numDisplay.ToString() + " " + numberName;
}
Ожидаемые результаты будут показывать число в интерфейсе как "1 триллион", однако оно показывает как "-1354 триллиона".