2014-09-27 34 views
-4

我正在編寫一個簡單的英里至公里程序,用戶輸入英里數並且程序顯示轉換結果。我已經指示使用整數,這就是我寫:一英里/公里轉換程序中的分區運算符

{Console.Write("Enter distance in miles"); 
string input1 = Console.ReadLine(); 
int number1 = Convert.ToInt32 (input1); 
int result1 = number1/0.65; 
Console.Write(number1 + "Miles is equal to " + result1 + "KM"); 
Console.ReadLine(); 

不過,我不斷收到以下錯誤:

Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)

誰能幫助,讓我知道爲什麼我會米得到這個錯誤?我是一個完整的初學者:)

回答

1

該部門number1/0.65double類型的表達式,即使當number1int

錯誤已經建議做一個類型轉換,它看起來像:

int result1 = (int) (number1/0.65); 
+0

非常感謝Henk :) – 2014-09-27 22:19:36

1

在C#中的整數,如雙收益的雙重分割,0.65double文字。因此,您的行int result1 = number1/0.65;正嘗試將double轉換爲整數,而不進行顯式強制轉換。

的快速解決方案是增加一個明確的轉換:

int result1 = (int)(number1/0.65); 

但是你應該知道,這將有效地截斷小數點(以數學樓)。您可能想要將它包裝爲圓形,供您的應用程序使用。

int result1 = (int)Math.Round(number1/0.65);