Java Program to Convert Kilometers to Miles
To convert kilometers to miles in Java, multiply the kilometers by
0.621371 using code like double miles = kilometers * 0.621371;.Examples
Input1
Output0.621371
Input5
Output3.106855
Input0
Output0.0
How to Think About It
To convert kilometers to miles, think of it as changing one unit to another by multiplying with a fixed number. Since 1 kilometer equals about 0.621371 miles, you multiply the kilometers by this number to get miles.
Algorithm
1
Get the input value in kilometers.2
Multiply the kilometers by 0.621371 to convert to miles.3
Return or print the miles value.Code
java
public class KmToMiles { public static void main(String[] args) { double kilometers = 10; double miles = kilometers * 0.621371; System.out.println(kilometers + " kilometers is " + miles + " miles."); } }
Output
10 kilometers is 6.21371 miles.
Dry Run
Let's trace converting 10 kilometers to miles through the code
1
Input kilometers
kilometers = 10
2
Multiply by conversion factor
miles = 10 * 0.621371 = 6.21371
3
Print result
Output: '10 kilometers is 6.21371 miles.'
| kilometers | miles |
|---|---|
| 10 | 6.21371 |
Why This Works
Step 1: Use the conversion factor
The fixed number 0.621371 converts kilometers to miles because 1 kilometer equals approximately 0.621371 miles.
Step 2: Multiply kilometers by factor
Multiplying the kilometers by 0.621371 changes the unit from kilometers to miles.
Step 3: Display the result
Printing the result shows the converted value in miles for the user.
Alternative Approaches
Using a method to convert
java
public class KmToMiles { public static double convert(double km) { return km * 0.621371; } public static void main(String[] args) { double km = 15; System.out.println(km + " km = " + convert(km) + " miles"); } }
This approach separates conversion logic into a reusable method, improving code organization.
Using BigDecimal for precision
java
import java.math.BigDecimal; public class KmToMiles { public static void main(String[] args) { BigDecimal km = new BigDecimal("20"); BigDecimal factor = new BigDecimal("0.621371"); BigDecimal miles = km.multiply(factor); System.out.println(km + " km = " + miles + " miles"); } }
Using BigDecimal improves precision for financial or scientific calculations but adds complexity.
Complexity: O(1) time, O(1) space
Time Complexity
The conversion is a single multiplication operation, so it runs in constant time O(1).
Space Complexity
Only a few variables are used, so space complexity is constant O(1).
Which Approach is Fastest?
All approaches run in constant time; using BigDecimal is slower but more precise, while simple double multiplication is fastest and sufficient for most cases.
| Approach | Time | Space | Best For |
|---|---|---|---|
| Simple multiplication | O(1) | O(1) | Quick and easy conversions |
| Method encapsulation | O(1) | O(1) | Reusable and organized code |
| BigDecimal precision | O(1) | O(1) | High precision needs |
Always use the conversion factor 0.621371 to convert kilometers to miles accurately.
Forgetting to multiply by the conversion factor and just printing the kilometers as miles.