How to convert between mm, cm, meters, kilometers, miles, feet, yards, and inches in Kotlin

1 Answer

0 votes
import kotlin.system.exitProcess

// Conversion functions (all convert *from meters* first)
fun mmToMeters(mm: Double): Double      = mm / 1000.0
fun cmToMeters(cm: Double): Double      = cm / 100.0
fun kmToMeters(km: Double): Double      = km * 1000.0
fun milesToMeters(mi: Double): Double   = mi * 1609.34
fun feetToMeters(ft: Double): Double    = ft * 0.3048
fun yardsToMeters(yd: Double): Double   = yd * 0.9144
fun inchesToMeters(i: Double): Double   = i * 0.0254

// Convert meters → all units
fun toMillimeters(m: Double): Double = m * 1000.0
fun toCentimeters(m: Double): Double = m * 100.0
fun toKilometers(m: Double): Double  = m / 1000.0
fun toMiles(m: Double): Double       = m / 1609.34
fun toFeet(m: Double): Double        = m / 0.3048
fun toYards(m: Double): Double       = m / 0.9144
fun toInches(m: Double): Double      = m / 0.0254

fun main() {
    val choice: Int
    val value: Double
    val meters: Double

    println("Choose input unit:")
    println("1. Millimeters")
    println("2. Centimeters")
    println("3. Meters")
    println("4. Kilometers")
    println("5. Miles")
    println("6. Feet")
    println("7. Yards")
    println("8. Inches")
    print("Enter choice: ")
    choice = readln().toIntOrNull() ?: 0

    print("Enter value: ")
    value = readln().toDoubleOrNull() ?: 0.0

    // Convert chosen unit → meters
    meters = when (choice) {
        1 -> mmToMeters(value)
        2 -> cmToMeters(value)
        3 -> value
        4 -> kmToMeters(value)
        5 -> milesToMeters(value)
        6 -> feetToMeters(value)
        7 -> yardsToMeters(value)
        8 -> inchesToMeters(value)
        else -> {
            println("Invalid choice")
            exitProcess(0)
        }
    }

    println()
    println("Converted from meters (${String.format("%.6f", meters)} m):")
    println("Millimeters: ${String.format("%.6f", toMillimeters(meters))}")
    println("Centimeters: ${String.format("%.6f", toCentimeters(meters))}")
    println("Meters:      ${String.format("%.6f", meters)}")
    println("Kilometers:  ${String.format("%.6f", toKilometers(meters))}")
    println("Miles:       ${String.format("%.6f", toMiles(meters))}")
    println("Feet (Foot): ${String.format("%.6f", toFeet(meters))}")
    println("Yards:       ${String.format("%.6f", toYards(meters))}")
    println("Inches:      ${String.format("%.6f", toInches(meters))}")
}


/*
run:

Choose input unit:
1. Millimeters
2. Centimeters
3. Meters
4. Kilometers
5. Miles
6. Feet
7. Yards
8. Inches
Enter choice: 4
Enter value: 1

Converted from meters (1000.000000 m):
Millimeters: 1000000.000000
Centimeters: 100000.000000
Meters:      1000.000000
Kilometers:  1.000000
Miles:       0.621373
Feet (Foot): 3280.839895
Yards:       1093.613298
Inches:      39370.078740

*/

 



answered 9 hours ago by avibootz

Related questions

...