File tree Expand file tree Collapse file tree
commonMain/kotlin/nl/jacobras/humanreadable
commonTest/kotlin/nl/jacobras/humanreadable Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -12,13 +12,23 @@ internal fun Double.formatNumber(
1212 val rounded = formatWithDecimals(decimals)
1313 val parts = rounded.split(' .' )
1414
15+ val integerPart = parts[0 ]
16+ // Check is Negative
17+ val isNegative = integerPart.startsWith(" -" )
18+
19+ // If Negative Then drop first letter
20+ val numberPart = if (isNegative) integerPart.substring(1 ) else integerPart
21+
1522 // Format the integer part
16- val formattedIntegerPart = parts[ 0 ]
23+ val formattedNumberPart = numberPart
1724 .reversed()
1825 .chunked(3 )
1926 .joinToString(groupSeparator)
2027 .reversed()
2128
29+ val formattedIntegerPart = if (isNegative) " -$formattedNumberPart " else formattedNumberPart
30+
31+
2232 // Format the decimal part
2333 val decimalPart = if (parts.size > 1 ) parts[1 ] else " "
2434 val formattedDecimalPart = if (decimals > 0 ) {
Original file line number Diff line number Diff line change @@ -15,4 +15,10 @@ class HumanReadableNumberEdgeCaseTests {
1515 assertThat(HumanReadable .number(0.04 , decimals = 2 )).isEqualTo(" 0.04" )
1616 assertThat(HumanReadable .number(00000.00004 , decimals = 3 )).isEqualTo(" 0.000" )
1717 }
18+
19+ @Test
20+ fun negativeNumber () {
21+ assertThat(HumanReadable .number(- 123456 )).isEqualTo(" -123,456" )
22+ assertThat(HumanReadable .number(- 123 )).isEqualTo(" -123" )
23+ }
1824}
You can’t perform that action at this time.
0 commit comments