Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RoundNumber()

static unsafe void System.Globalization.FormatProvider.Number.RoundNumber ( ref NumberBuffer number,
int pos )
inlinestaticprivate

Definition at line 784 of file FormatProvider.cs.

785 {
786 char* digits = number.digits;
787 int i;
788 for (i = 0; i < pos && digits[i] != 0; i++)
789 {
790 }
791 if (i == pos && digits[i] >= '5')
792 {
793 while (i > 0 && digits[i - 1] == '9')
794 {
795 i--;
796 }
797 if (i > 0)
798 {
799 char* num = digits + (i - 1);
800 *num = (char)(*num + 1);
801 }
802 else
803 {
804 number.scale++;
805 *digits = '1';
806 i = 1;
807 }
808 }
809 else
810 {
811 while (i > 0 && digits[i - 1] == '0')
812 {
813 i--;
814 }
815 }
816 if (i == 0)
817 {
818 number.scale = 0;
819 number.sign = false;
820 }
821 digits[i] = '\0';
822 }

Referenced by System.Globalization.FormatProvider.Number.NumberToString(), and System.Globalization.FormatProvider.Number.NumberToStringFormat().