我正在尝试执行以下操作:
10^((77-109)/32) = 0,1
在 C# 中:
MessageBox.Show((Math.Pow((((77-109)/ 32)), 10)).ToString());
输出:
1
到底是怎么回事?我怎样才能得到正确的答案?
您正在使用导致 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^x
.
你已经交换了参数Math.pow
;您的代码正在提高(88-109)/32
到 10 的幂,结果,您得到了意想不到的结果。交换参数(并将 88 更正为 77)将为您提供 的预期结果0.1
,因为它将评估10^-1
。
MessageBox.Show((Math.Pow(10, (77 - 109) / 32)).ToString());