예제 #1
0
        private static unsafe int Grisu2(double value, char *buffer, out int K)
        {
            DiyFp diyFp = new DiyFp(value);
            DiyFp minus;
            DiyFp plus;

            diyFp.NormalizedBoundaries(out minus, out plus);
            DiyFp cachedPower = GetCachedPower(plus.e, out K);
            DiyFp w           = diyFp.Normalize() * cachedPower;
            DiyFp mp          = plus * cachedPower;
            DiyFp diyFp2      = minus * cachedPower;

            diyFp2.f++;
            mp.f--;
            return(DigitGen(w, mp, mp.f - diyFp2.f, buffer, ref K));
        }