0
可能是我在問愚蠢的問題,但我不明白爲什麼不給我輸出我希望(即2.5
):轉換雙重價值的ToString()
double x = 5/2;
Console.WriteLine(x.ToString());
可能是我在問愚蠢的問題,但我不明白爲什麼不給我輸出我希望(即2.5
):轉換雙重價值的ToString()
double x = 5/2;
Console.WriteLine(x.ToString());
5/2
執行integer division不管您分配它的類型。它總是忽視小數部分。
您需要改用浮點除法。
double x = 5.0/2;
double x = 5/2.0;
double x = 5.0/2.0;
當你把兩個整數,結果是總是整數。對於 例如,7/3的結果爲2.
從C#規範部分$7.7.2 Division operator,有3種類型的劃分;
而且從在整數除法的相關部分;
劃分舍入結果趨向於零,而 絕對值的結果是最大的可能整數小於所述兩個操作數的商數的 絕對值。當兩個操作數具有相同的符號和零時結果爲零,或者當兩個操作數具有相反的符號時爲負,或者爲 。
謝謝@SonerGönül,很好的解釋 –
整數除法。 '5/2 == 2'.Try'double x = 5.0/2' – AlexD
Tnx @AlexD!和答案幫助我瞭解 –