int c;
int f = 20;
c = 5 / 9 * (f - 32);
Console.WriteLine(c);
Console.ReadLine();
このコードを実行すると、cは0になりますが、これは間違っています。誰か教えてもらえますか?
int c;
int f = 20;
c = 5 / 9 * (f - 32);
Console.WriteLine(c);
Console.ReadLine();
このコードを実行すると、cは0になりますが、これは間違っています。誰か教えてもらえますか?
計算は整数型で行われているためです。c
ダブル型変数だと思います。
c = 5d / 9 * (f - 32.0);
32.0
またはを使用して、オペランドの1つが、に32d
なるようにします。また、。に対しても同じことを行います。double
5/9
また、doubleとして定義する必要があります。c
問題は次の行にあります。
5 / 9
cとfは整数だからです。たとえば、11を10に分割するように依頼した場合。結果は1.1です。浮動小数点演算について知らないと仮定すると、11を10に除算することは不可能であると言うでしょう。または、1であると言うでしょう。ランタイム環境も同じことをします。整数を宣言しているので、0であると言います。
ハビブはすでに何が起こっているのかを説明しました。c
フロートまたはダブルに変更したくない場合にできることは次のとおりです。
c = (int)Math.Round(5.0 / 9.0 * (f - 32.0));