import scala.io.StdIn.readLine
// Conversion functions (all convert *from meters* first)
def mmToMeters(mm: Double): Double = mm / 1000.0
def cmToMeters(cm: Double): Double = cm / 100.0
def kmToMeters(km: Double): Double = km * 1000.0
def milesToMeters(mi: Double): Double = mi * 1609.34
def feetToMeters(ft: Double): Double = ft * 0.3048
def yardsToMeters(yd: Double): Double = yd * 0.9144
def inchesToMeters(inches: Double): Double = inches * 0.0254
// Convert meters → all units
def toMillimeters(m: Double): Double = m * 1000.0
def toCentimeters(m: Double): Double = m * 100.0
def toKilometers(m: Double): Double = m / 1000.0
def toMiles(m: Double): Double = m / 1609.34
def toFeet(m: Double): Double = m / 0.3048
def toYards(m: Double): Double = m / 0.9144
def toInches(m: Double): Double = m / 0.0254
@main def main(): Unit =
val choice: Int =
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: ")
readLine().toIntOption.getOrElse(0)
print("Enter value: ")
val value: Double = readLine().toDoubleOption.getOrElse(0.0)
// Convert chosen unit → meters
val meters: Double = choice match
case 1 => mmToMeters(value)
case 2 => cmToMeters(value)
case 3 => value
case 4 => kmToMeters(value)
case 5 => milesToMeters(value)
case 6 => feetToMeters(value)
case 7 => yardsToMeters(value)
case 8 => inchesToMeters(value)
case _ =>
println("Invalid choice")
return
println()
println(f"Converted from meters (${meters}%.6f m):")
println(f"Millimeters: ${toMillimeters(meters)}%.6f")
println(f"Centimeters: ${toCentimeters(meters)}%.6f")
println(f"Meters: ${meters}%.6f")
println(f"Kilometers: ${toKilometers(meters)}%.6f")
println(f"Miles: ${toMiles(meters)}%.6f")
println(f"Feet (Foot): ${toFeet(meters)}%.6f")
println(f"Yards: ${toYards(meters)}%.6f")
println(f"Inches: ${toInches(meters)}%.6f")
/*
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
*/