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

1 Answer

0 votes
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

*/

 



answered 9 hours ago by avibootz

Related questions

...