2

C# の学習、数学の方程式が期待どおりにならない。これは私の宿題の一部です。なぜ結果が出ないのか理解できません..

最初の式

m=2
n=1

int sideA = (m^2) - (n^2);

結果-3

2 番目の式

x1=2
x2=7

float Xmid = (x1 + x2)/2;

結果4

4

2 に答える 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 2float

あなたは試してみたいかもしれません:

float Xmid = (x1 + x2)/2.0;

また:

float Xmid = (x1 + x2)/2f;

またはfloat として と を宣言するx1x2、どちらも が生成され4.5ます。

于 2013-09-26T00:31:08.167 に答える