-1

私は次のことをしようとしています:

10^((77-109)/32) = 0,1

C# の場合:

MessageBox.Show((Math.Pow((((77-109)/ 32)), 10)).ToString());

出力:

1

何が起こっている?どうすれば正しい答えを得ることができますか?

4

2 に答える 2

2

すべての整数オペランドを使用しているため、C# で整数演算が使用されます。

(88-109)/32 = (切り捨て) 0、および 0^10 = 0 (これは、1 ではなく、コード行に表示されるものです)

質問の一番上で必要な結果を得るための正しい行は次のとおりです。

MessageBox.Show((Math.Pow(10.0, (77.0 - 109.0) / 32.0)).ToString());

正しくは、0.1 と表示されます。x^10整数の代わりに 10 進数への変更と、(誤った)から への交換に注意してください10^x

于 2012-10-07T15:46:20.843 に答える
2

You've swapped the parameters in Math.pow; your code is raising (88-109)/32 to the power of 10, and as a result, you are getting unexpected results. Swapping the parameters (and correcting 88 to 77) will give you the expected result of 0.1, as it then will evaluate 10^-1.

MessageBox.Show((Math.Pow(10, (77 - 109) / 32)).ToString());
于 2012-10-07T15:58:44.033 に答える