A figure in miles can be converted to one in kilometers with a C# program. The United States has standardized on miles.
Most other countries use the superior metric system. It is important to maintain compatibility with many cultures.
Consider the figure 200 miles. This is equivalent to 321.9 kilometers. At a minimum, our method should handle these cases.
Input: 200 m 321.9 km 500 km 310.7 m Output: 321.9 km 200 m 310.7 m 500 km
Here we look at some useful conversion methods for this problem. These methods are effective in converting from miles to kilometers and back again.
Double
stores numbers that are larger and have decimal places. It consumes more memory and is slower to process.float
64 values. These are in a static
class
, which doesn't store state.using System; class Program { static void Main() { // // Convert miles to kilometers. // double miles1 = 200; double kilometers1 = ConvertDistance.ConvertMilesToKilometers(200); Console.WriteLine("{0} = {1}", miles1, kilometers1); // // Convert kilometers to miles. // double kilometers2 = 321.9; double miles2 = ConvertDistance.ConvertKilometersToMiles(321.9); Console.WriteLine("{0} = {1}", kilometers2, miles2); // // Convert kilometers to miles (again). // double kilometers3 = 500; double miles3 = ConvertDistance.ConvertKilometersToMiles(500); Console.WriteLine("{0} = {1}", kilometers3, miles3); // // Convert miles to kilometers (again). // double miles4 = 310.7; double kilometers4 = ConvertDistance.ConvertMilesToKilometers(310.7); Console.WriteLine("{0} = {1}", miles4, kilometers4); } } public static class ConvertDistance { public static double ConvertMilesToKilometers(double miles) { // // Multiply by this constant and return the result. // return miles * 1.609344; } public static double ConvertKilometersToMiles(double kilometers) { // // Multiply by this constant. // return kilometers * 0.621371192; } }200 = 321.8688 321.9 = 200.0193867048 500 = 310.685596 310.7 = 500.0231808
The double
type here is actually termed float64
, meaning a 64-bit number. This snippet shows ConvertKilometersToMiles
. It uses the mul
opcode to multiply.
ldrc.r8
opcode pushes the supplied value (the 0.621371192) onto the stack as a float
..method public hidebysig static float64 ConvertKilometersToMiles(float64 k) cil managed { .maxstack 8 L_0000: ldarg.0 L_0001: ldc.r8 0.621371192 L_000a: mul L_000b: ret }
Figures in miles can be converted to km—this can be helpful in many programs that act upon distances. We used a static
class
to logically store static
methods.