Esempio n. 1
0
        private static unsafe void DecimalToNumber(Decimal value, ref Number.NumberBuffer number)
        {
            Decimal d = value;

            char *buffer = number.digits;

            number.precision = DecimalPrecision;
            number.sign      = d.IsNegative;

            char *p = buffer + DecimalPrecision;

            while (d.Mid != 0 | d.High != 0)
            {
                p = Number.UInt32ToDecChars(p, Decimal.DecDivMod1E9(ref d), 9);
            }
            p = Number.UInt32ToDecChars(p, d.Low, 0);

            int i = (int)(buffer + DecimalPrecision - p);

            number.scale = i - d.Scale;

            char *dst = number.digits;

            while (--i >= 0)
            {
                *dst++ = *p++;
            }
            *dst = '\0';
        }