Definition at line 1562 of file Decimal.cs.
1563 {
1565 int scale = (sbyte)(
d1.uflags -
d2.uflags >> 16);
1566 bool flag = false;
1568 uint num;
1573 if ((
d2.High |
d2.Mid) == 0)
1574 {
1577 {
1578 throw new DivideByZeroException();
1579 }
1583 while (true)
1584 {
1586 if (num == 0)
1587 {
1588 if (scale >= 0)
1589 {
1590 break;
1591 }
1592 num2 = Math.Min(9, -scale);
1593 }
1594 else
1595 {
1596 flag = true;
1598 {
1600 }
1601 }
1605 {
1610 {
1612 break;
1613 }
1614 continue;
1615 }
1617 }
1618 }
1619 else
1620 {
1623 {
1625 }
1632 {
1636 while (true)
1637 {
1639 {
1640 if (scale >= 0)
1641 {
1642 break;
1643 }
1644 num2 = Math.Min(9, -scale);
1645 }
1646 else
1647 {
1648 flag = true;
1650 {
1652 }
1653 }
1657 {
1661 {
1663 break;
1664 }
1665 continue;
1666 }
1668 }
1669 }
1670 else
1671 {
1677 while (true)
1678 {
1680 {
1681 if (scale >= 0)
1682 {
1683 break;
1684 }
1685 num2 = Math.Min(9, -scale);
1686 }
1687 else
1688 {
1689 flag = true;
1691 {
1693 }
1694 }
1698 {
1702 {
1704 break;
1705 }
1706 continue;
1707 }
1709 }
1710 }
1711 }
1715 {
1720 {
1722 }
1723 }
1726 if (flag)
1727 {
1734 }
1735 else
1736 {
1739 }
1741 return;
1744 {
1746 }
1749 Number.ThrowOverflowException(TypeCode.Decimal);
1750 return;
1754 {
1756 }
1761 {
1763 }
1765 }
static int LeadingZeroCount(uint value)
static uint Div96By64(ref Buf12 bufNum, ulong den)
static readonly uint[] s_powers10
static int SearchScale(ref Buf12 bufQuo, int scale)
static uint Div128By96(ref Buf16 bufNum, ref Buf12 bufDen)
static uint IncreaseScale(ref Buf12 bufNum, uint power)
static void IncreaseScale64(ref Buf12 bufNum, uint power)
static void Unscale(ref uint low, ref ulong high64, ref int scale)
static bool Add32To96(ref Buf12 bufNum, uint value)
static int OverflowUnscale(ref Buf12 bufQuo, int scale, bool sticky)
static uint Div96By32(ref Buf12 bufNum, uint den)
static ulong UInt32x32To64(uint a, uint b)
References System.Decimal.DecCalc.Add32To96(), System.Runtime.Serialization.Dictionary, System.Decimal.DecCalc.Div128By96(), System.Decimal.DecCalc.Div96By32(), System.Decimal.DecCalc.Div96By64(), System.Decimal.DecCalc.IncreaseScale(), System.Decimal.DecCalc.IncreaseScale64(), System.L, System.Numerics.BitOperations.LeadingZeroCount(), System.Math.Min(), System.Decimal.DecCalc.OverflowUnscale(), System.Decimal.DecCalc.s_powers10, System.Decimal.DecCalc.SearchScale(), System.Number.ThrowOverflowException(), System.Decimal.DecCalc.UInt32x32To64(), System.Decimal.DecCalc.Unscale(), and System.value.
Referenced by System.Decimal.Divide(), and System.Decimal.operator/().