System.Globalization.FormatProvider.Number.FormatGeneral C# (CSharp) 메소드

FormatGeneral() 개인적인 정적인 메소드

private static FormatGeneral ( System.StringBuilder sb, NumberBuffer number, int nMinDigits, int nMaxDigits, NumberFormatInfo info, char expChar, bool bSuppressScientific ) : void
sb System.StringBuilder
number NumberBuffer
nMinDigits int
nMaxDigits int
info NumberFormatInfo
expChar char
bSuppressScientific bool
리턴 void
            private static unsafe void FormatGeneral(StringBuilder sb, NumberBuffer number, int nMinDigits, int nMaxDigits, NumberFormatInfo info, char expChar, bool bSuppressScientific)
            {
                int digPos = number.scale;
                bool scientific = false;

                if (!bSuppressScientific)
                {
                    // Don't switch to scientific notation
                    if (digPos > nMaxDigits || digPos < -3)
                    {
                        digPos = 1;
                        scientific = true;
                    }
                }

                char* dig = number.digits;

                if (digPos > 0)
                {
                    do
                    {
                        sb.Append((*dig != 0) ? *dig++ : '0');
                    } while (--digPos > 0);
                }
                else
                {
                    sb.Append('0');
                }

                if (*dig != 0 || digPos < 0)
                {
                    sb.Append(info.NumberDecimalSeparator);

                    while (digPos < 0)
                    {
                        sb.Append('0');
                        digPos++;
                    }

                    while (*dig != 0)
                        sb.Append(*dig++);
                }

                if (scientific)
                    FormatExponent(sb, info, number.scale - 1, expChar, 2, true);
            }