Fixed padding bug of sprintf function
(cherry picked from commit 9f2cdfea82
)
This commit is contained in:
parent
1a71792655
commit
09a8dd7b3b
2 changed files with 4 additions and 3 deletions
|
@ -4182,11 +4182,12 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||||
int number_len = str.length();
|
int number_len = str.length();
|
||||||
|
|
||||||
// Padding.
|
// Padding.
|
||||||
|
int pad_chars_count = (value < 0 || show_sign) ? min_chars - 1 : min_chars;
|
||||||
String pad_char = pad_with_zeroes ? String("0") : String(" ");
|
String pad_char = pad_with_zeroes ? String("0") : String(" ");
|
||||||
if (left_justified) {
|
if (left_justified) {
|
||||||
str = str.rpad(min_chars, pad_char);
|
str = str.rpad(pad_chars_count, pad_char);
|
||||||
} else {
|
} else {
|
||||||
str = str.lpad(min_chars, pad_char);
|
str = str.lpad(pad_chars_count, pad_char);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sign.
|
// Sign.
|
||||||
|
|
|
@ -767,7 +767,7 @@
|
||||||
Returns the integer modulus of [code]a/b[/code] that wraps equally in positive and negative.
|
Returns the integer modulus of [code]a/b[/code] that wraps equally in positive and negative.
|
||||||
[codeblock]
|
[codeblock]
|
||||||
for i in range(-3, 4):
|
for i in range(-3, 4):
|
||||||
print("%2.0f %2.0f %2.0f" % [i, i % 3, posmod(i, 3)])
|
print("%2d %2d %2d" % [i, i % 3, posmod(i, 3)])
|
||||||
[/codeblock]
|
[/codeblock]
|
||||||
Produces:
|
Produces:
|
||||||
[codeblock]
|
[codeblock]
|
||||||
|
|
Loading…
Reference in a new issue