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