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

◆ TryParseDouble()

static bool System.Xml.XmlConverter.TryParseDouble ( byte[] chars,
int offset,
int count,
out double result )
inlinestaticprivate

Definition at line 770 of file XmlConverter.cs.

771 {
772 result = 0.0;
773 int num = offset + count;
774 bool flag = false;
775 if (offset < num && chars[offset] == 45)
776 {
777 flag = true;
778 offset++;
779 count--;
780 }
782 {
783 return false;
784 }
785 int num2 = 0;
786 while (offset < num)
787 {
788 int num3 = chars[offset] - 48;
789 switch (num3)
790 {
791 case -2:
792 {
793 offset++;
794 int num4 = 1;
795 while (offset < num)
796 {
797 num3 = chars[offset] - 48;
798 if ((uint)num3 >= 10u)
799 {
800 return false;
801 }
802 num4 *= 10;
803 num2 = num2 * 10 + num3;
804 offset++;
805 }
806 if (flag)
807 {
808 result = (0.0 - (double)num2) / (double)num4;
809 }
810 else
811 {
812 result = (double)num2 / (double)num4;
813 }
814 return true;
815 }
816 default:
817 return false;
818 case 0:
819 case 1:
820 case 2:
821 case 3:
822 case 4:
823 case 5:
824 case 6:
825 case 7:
826 case 8:
827 case 9:
828 break;
829 }
830 num2 = num2 * 10 + num3;
831 offset++;
832 }
833 if (count == 10)
834 {
835 return false;
836 }
837 if (flag)
838 {
839 result = -num2;
840 }
841 else
842 {
843 result = num2;
844 }
845 return true;
846 }

References System.chars, System.count, System.Xml.Dictionary, and System.offset.

Referenced by System.Xml.XmlConverter.ToDouble().