import Foundation
// Conversion functions (all convert *from meters* first)
func mmToMeters(_ mm: Double) -> Double { return mm / 1000.0 }
func cmToMeters(_ cm: Double) -> Double { return cm / 100.0 }
func kmToMeters(_ km: Double) -> Double { return km * 1000.0 }
func milesToMeters(_ mi: Double) -> Double { return mi * 1609.34 }
func feetToMeters(_ ft: Double) -> Double { return ft * 0.3048 }
func yardsToMeters(_ yd: Double) -> Double { return yd * 0.9144 }
func inchesToMeters(_ inch: Double) -> Double { return inch * 0.0254 }
// Convert meters → all units
func toMillimeters(_ m: Double) -> Double { return m * 1000.0 }
func toCentimeters(_ m: Double) -> Double { return m * 100.0 }
func toKilometers(_ m: Double) -> Double { return m / 1000.0 }
func toMiles(_ m: Double) -> Double { return m / 1609.34 }
func toFeet(_ m: Double) -> Double { return m / 0.3048 }
func toYards(_ m: Double) -> Double { return m / 0.9144 }
func toInches(_ m: Double) -> Double { return m / 0.0254 }
func main() {
var choice: Int
var value: Double
var meters: Double
print("Choose input unit:")
print("1. Millimeters")
print("2. Centimeters")
print("3. Meters")
print("4. Kilometers")
print("5. Miles")
print("6. Feet")
print("7. Yards")
print("8. Inches")
print("Enter choice: ", terminator: "")
choice = Int(readLine() ?? "") ?? 0
print("Enter value: ", terminator: "")
value = Double(readLine() ?? "") ?? 0.0
// Convert chosen unit → meters
switch choice {
case 1: meters = mmToMeters(value)
case 2: meters = cmToMeters(value)
case 3: meters = value
case 4: meters = kmToMeters(value)
case 5: meters = milesToMeters(value)
case 6: meters = feetToMeters(value)
case 7: meters = yardsToMeters(value)
case 8: meters = inchesToMeters(value)
default:
print("Invalid choice")
return
}
print()
print(String(format: "Converted from meters (%.6f m):", meters))
print(String(format: "Millimeters: %.6f", toMillimeters(meters)))
print(String(format: "Centimeters: %.6f", toCentimeters(meters)))
print(String(format: "Meters: %.6f", meters))
print(String(format: "Kilometers: %.6f", toKilometers(meters)))
print(String(format: "Miles: %.6f", toMiles(meters)))
print(String(format: "Feet (Foot): %.6f", toFeet(meters)))
print(String(format: "Yards: %.6f", toYards(meters)))
print(String(format: "Inches: %.6f", toInches(meters)))
}
main()
/*
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
*/