Skip to main content

How to convert a number to its word representation with commas in Kotlin

How to convert a number to its word representation with commas in Kotlin.

Here is a step-by-step tutorial on how to convert a number to its word representation with commas in Kotlin.

Step 1: Create a function to convert a number to its word representation.

fun convertNumberToWords(number: Long): String {
// TODO: Implement the logic to convert the number to words
}

Step 2: Check if the number is zero.

if (number == 0L) {
return "zero"
}

Step 3: Define arrays for the word representations of numbers.

val units = arrayOf("one", "two", "three", "four", "five", "six", "seven", "eight", "nine")
val tens = arrayOf("ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")
val teens = arrayOf("eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")
val thousands = arrayOf("", "thousand", "million", "billion", "trillion")

Step 4: Create a helper function to convert a three-digit number to words.

fun convertThreeDigitNumber(number: Int): String {
val hundred = number / 100
val remainder = number % 100
var words = ""

if (hundred > 0) {
words += "${units[hundred - 1]} hundred"
}

if (remainder in 1..9) {
words += " ${units[remainder - 1]}"
} else if (remainder in 11..19) {
words += " ${teens[remainder - 11]}"
} else if (remainder in 20..99) {
val ten = remainder / 10
val unit = remainder % 10
words += " ${tens[ten - 1]}"

if (unit > 0) {
words += "-${units[unit - 1]}"
}
}

return words.trim()
}

Step 5: Implement the logic to convert the number to words.

fun convertNumberToWords(number: Long): String {
if (number == 0L) {
return "zero"
}

val parts = mutableListOf<String>()
var remainingNumber = number

while (remainingNumber > 0) {
val threeDigitNumber = (remainingNumber % 1000).toInt()
val words = convertThreeDigitNumber(threeDigitNumber)

if (words.isNotEmpty()) {
val thousandIndex = (parts.size - 1) / 3
val thousandWord = thousands[thousandIndex]
parts.add("$words $thousandWord")
}

remainingNumber /= 1000
}

return parts.reversed().joinToString(", ")
}

Step 6: Test the function with sample inputs.

fun main() {
println(convertNumberToWords(0)) // zero
println(convertNumberToWords(123)) // one hundred twenty-three
println(convertNumberToWords(1000)) // one thousand
println(convertNumberToWords(123456789)) // one hundred twenty-three million four hundred fifty-six thousand seven hundred eighty-nine
}

That's it! You now have a function that can convert a number to its word representation with commas in Kotlin.