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

1 Answer

0 votes
#include <iostream>
#include <iomanip>

using std::cout;

// Conversion functions (all convert *from meters* first)
double mmToMeters(double mm)      { return mm / 1000.0; }
double cmToMeters(double cm)      { return cm / 100.0; }
double kmToMeters(double km)      { return km * 1000.0; }
double milesToMeters(double mi)   { return mi * 1609.34; }
double feetToMeters(double ft)    { return ft * 0.3048; }
double yardsToMeters(double yd)   { return yd * 0.9144; }
double inchesToMeters(double in)  { return in * 0.0254; }

// Convert meters → all units
double toMillimeters(double m) { return m * 1000.0; }
double toCentimeters(double m) { return m * 100.0; }
double toKilometers(double m)  { return m / 1000.0; }
double toMiles(double m)       { return m / 1609.34; }
double toFeet(double m)        { return m / 0.3048; }
double toYards(double m)       { return m / 0.9144; }
double toInches(double m)      { return m / 0.0254; }

int main() {
    int choice;
    double value, meters;

    cout << "Choose input unit:\n";
    cout << "1. Millimeters\n";
    cout << "2. Centimeters\n";
    cout << "3. Meters\n";
    cout << "4. Kilometers\n";
    cout << "5. Miles\n";
    cout << "6. Feet\n";
    cout << "7. Yards\n";
    cout << "8. Inches\n";
    cout << "Enter choice: ";
    std::cin >> choice;

    cout << "Enter value: ";
    std::cin >> value;

    // Convert chosen unit → meters
    switch (choice) {
        case 1: meters = mmToMeters(value); break;
        case 2: meters = cmToMeters(value); break;
        case 3: meters = value; break;
        case 4: meters = kmToMeters(value); break;
        case 5: meters = milesToMeters(value); break;
        case 6: meters = feetToMeters(value); break;
        case 7: meters = yardsToMeters(value); break;
        case 8: meters = inchesToMeters(value); break;
        default:
            cout << "Invalid choice\n";
            return 0;
    }
    cout << std::fixed << std::setprecision(6); 
    
    cout << "\nConverted from meters (" << meters << " m):\n";
    cout << "Millimeters: " << toMillimeters(meters) << "\n";
    cout << "Centimeters: " << toCentimeters(meters) << "\n";
    cout << "Meters:      " << meters << "\n";
    cout << "Kilometers:  " << toKilometers(meters) << "\n";
    cout << "Miles:       " << toMiles(meters) << "\n";
    cout << "Feet (Foot): " << toFeet(meters) << "\n";
    cout << "Yards:       " << toYards(meters) << "\n";
    cout << "Inches:      " << toInches(meters) << "\n";
}


/*
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
edited 8 hours ago by avibootz

Related questions

...