2017-06-11 7 views
0

アプリソロリアンの「チャレンジ」の中で、C#関連の質問にお互いに答えると、質問は「次のアウトプットは同じになるのですか?Console.Write(5/2)とConsole.Write(5.0/2)の違いは何ですか?

Console.Write(5/2 + 2.5); // 4.5 
Console.Write(5.0/2 + 2.5); // 5 

私はそれを実行すると、それは確かに(コードのコメントとして示されている)異なる結果を取得します。なぜ下の出力が同じではないのですか?

+5

私はあなたに答えを与えませんが、ここではヒントです。 5.0.GetType()。Name、5.GetType()。Name私はあなたがそこから所有していることを確かめることができると確信しています。 –

答えて

2

の場合:Console.Write(5/2 + 2.5); 5/2は整数/整数除算と見なされます。以下の場合

int i = 5; 
    int j = 2; 
    Console.WriteLine(i/j); 
    //prints 2 

:このコードをチェックConsole.Write(5.0/2 + 2.5); 5.0/2は、二重/整数の除算と考えられます。同じコードは次のようになります。= 2 + 2.5 => 4.5

に、あなたのケースでそう

 double i = 5.0; 
    int j = 2; 
    Console.WriteLine(i/j); 
    //prints 2.5 

5/2 + 2.5結果でも、2.5 + 5.0/2で、我々は2.5 + 2.5を取得します> 5

関連する問題