diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index 49c7ead42346..12e642372488 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -4281,12 +4281,13 @@ String String::pad_zeros(int p_digits) const { begin++; } - if (begin >= end) { + int zeros_to_add = p_digits - (end - begin); + + if (zeros_to_add <= 0) { return s; + } else { + return s.insert(begin, String("0").repeat(zeros_to_add)); } - - int zeros_to_add = p_digits - (end - begin); - return s.insert(begin, String("0").repeat(zeros_to_add)); } String String::trim_prefix(const String &p_prefix) const { diff --git a/tests/core/string/test_string.h b/tests/core/string/test_string.h index 5a2f8714305d..93b237788db7 100644 --- a/tests/core/string/test_string.h +++ b/tests/core/string/test_string.h @@ -1095,7 +1095,9 @@ TEST_CASE("[String] pad") { s = String("10.10"); CHECK(s.pad_decimals(4) == U"10.1000"); + CHECK(s.pad_decimals(1) == U"10.1"); CHECK(s.pad_zeros(4) == U"0010.10"); + CHECK(s.pad_zeros(1) == U"10.10"); } TEST_CASE("[String] is_subsequence_of") {