C# の学習、数学の方程式が期待どおりにならない。これは私の宿題の一部です。なぜ結果が出ないのか理解できません..
最初の式
m=2
n=1
int sideA = (m^2) - (n^2);
結果-3
2 番目の式
x1=2
x2=7
float Xmid = (x1 + x2)/2;
結果4
コードの最初の行:
int sideA = (m^2) - (n^2);
基本的にm XOR 2
マイナスn XOR 2
です。XOR はビット単位の演算子で、一方が真で両方が真ではないビットが得られます。排他的 OR演算子の詳細については、Wikipediaを参照してください。m
の乗数 を上げようとしている場合は、次の2
ようにしてみてください。
int sideA = Math.Pow(m, 2) - Math.Pow(n, 2);
コードの 2 行目:
float Xmid = (x1 + x2)/2;
は、 4.5の整数で割ったもの(2 + 7)
ですが、整数を別の整数で割ると常に整数になるため、結果の整数部分のみが保持されます。この式を a に割り当てているという事実は関係ありません。9
2
float
あなたは試してみたいかもしれません:
float Xmid = (x1 + x2)/2.0;
また:
float Xmid = (x1 + x2)/2f;
またはfloat として と を宣言するx1
とx2
、どちらも が生成され4.5
ます。