Fix overflowed integral digits always prepended in string formatter.
This commit is contained in:
@@ -211,8 +211,7 @@ namespace System.Text.Formatting {
|
||||
remainingDigitsInGroup -= groupSize;
|
||||
groupIndex++;
|
||||
}
|
||||
if (number.Scale > integralDigits) while (currentDigitIndex < number.Scale - integralDigits)
|
||||
formatter.AppendIntegralDigit(ref number, ref currentDigitIndex, culture, groupFlag, ref groupIndex, ref remainingDigitsInGroup);
|
||||
bool appendingDigitFlag = false;
|
||||
decimalFlag = false;
|
||||
for (index = start; index < end; index++) {
|
||||
switch (ptr[index]) {
|
||||
@@ -228,6 +227,11 @@ namespace System.Text.Formatting {
|
||||
break;
|
||||
case '0':
|
||||
case '#':
|
||||
if (!appendingDigitFlag) {
|
||||
if (number.Scale > integralDigits) while (currentDigitIndex < number.Scale - integralDigits)
|
||||
formatter.AppendIntegralDigit(ref number, ref currentDigitIndex, culture, groupFlag, ref groupIndex, ref remainingDigitsInGroup);
|
||||
appendingDigitFlag = true;
|
||||
}
|
||||
if (decimalFlag) {
|
||||
if (currentDigitIndex < number.Precision) {
|
||||
char digit = number.Digits[currentDigitIndex++];
|
||||
|
Reference in New Issue
Block a user