-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^1010^x.

于 2012-10-07T15:46:20.843 回答
2

你已经交换了参数Math.pow;您的代码正在提高(88-109)/32到 10 的幂,结果,您得到了意想不到的结果。交换参数(并将 88 更正为 77)将为您提供 的预期结果0.1,因为它将评估10^-1

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