Fix negative numbers being displayed wrong

This commit is contained in:
DBotThePony 2024-10-04 17:07:27 +07:00
parent 41431a13bd
commit a43521c579
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -117,9 +117,19 @@ fun BigInteger.formatSiComponent(suffix: Any = "", decimalPlaces: Int = 3, forma
private val never = BooleanSupplier { false }
private fun reformat(numbers: String): String {
if (numbers.length <= 4)
@Suppress("NAME_SHADOWING")
var numbers = numbers
if (numbers.isEmpty() || numbers.length <= 4)
return numbers
val negative = numbers[0] == '-'
if (negative && numbers.length == 5)
return numbers
else if (negative)
numbers = numbers.substring(1)
val result = CharArrayList((numbers.length * 1.6).roundToInt())
var dot = numbers.lastIndexOf('.')
@ -145,6 +155,9 @@ private fun reformat(numbers: String): String {
result.add(numbers[i])
}
if (negative)
result.add('-')
return String(CharArray(result.size) {
result.getChar(result.size - it - 1)
})