Definition at line 713 of file Decimal.cs.
714 {
715 ulong num =
d1.Low64;
720 sign ^= (
num5 & 0x80000000
u) != 0;
723 {
728 {
731 if (sign)
732 {
734 }
738 }
740 {
742 }
743 if (num > uint.MaxValue)
744 {
746 }
747 if ((int)num == 0)
748 {
750 if (sign)
751 {
753 }
756 return;
757 }
759 {
762 if (num <= uint.MaxValue)
763 {
764 continue;
765 }
767 }
769 }
773 while (true)
774 {
775 uint
b = 1000000000
u;
777 {
779 }
784 if ((
num7 -= 9) <= 0)
785 {
786 break;
787 }
789 {
790 continue;
791 }
793 }
806 while (true)
807 {
808 uint
b = 1000000000
u;
810 {
812 }
819 if (
num10 > uint.MaxValue)
820 {
821 break;
822 }
825 {
826 continue;
827 }
829 }
835 {
836 uint
b = 1000000000
u;
838 {
840 }
844 do
845 {
850 }
852 if ((uint)
num10 != 0)
853 {
855 }
857 }
862 if (sign)
863 {
867 {
870 {
872 }
873 }
875 {
877 }
878 }
879 else
880 {
884 {
887 {
889 }
890 }
892 {
894 }
895 }
901 {
903 {
906 break;
907 }
908 }
913 if (sign)
914 {
918 {
921 {
923 }
924 }
926 {
928 }
929 }
930 else
931 {
935 {
938 {
940 }
941 }
943 {
945 }
946 }
952 return;
958 {
960 }
966 {
967 }
969 {
971 }
975 {
976 Number.ThrowOverflowException(TypeCode.Decimal);
977 }
985 num <<= 32;
989 if (
num18 >= 5 && (
num18 > 5 || (num & 1) != 0
L) && ++num == 0
L)
990 {
992 }
994 }
static unsafe int ScaleResult(Buf24 *bufRes, uint hiRes, int scale)
static readonly uint[] s_powers10
static ulong UInt32x32To64(uint a, uint b)
References System.Runtime.Serialization.Dictionary, System.L, System.Decimal.DecCalc.s_powers10, System.Decimal.DecCalc.ScaleResult(), System.Number.ThrowOverflowException(), System.Decimal.DecCalc.UInt32x32To64(), and System.value.
Referenced by System.Decimal.Add(), System.Decimal.operator+(), System.Decimal.operator-(), and System.Decimal.Subtract().