学习C#,数学方程没有得到预期的结果。这是我作业的一部分。我不明白为什么结果不像他们应该说的那样出来。
第一方程
m=2
n=1
int sideA = (m^2) - (n^2);结果-3
第二方程
x1=2
x2=7
float Xmid = (x1 + x2)/2;结果4
发布于 2013-09-26 00:27:47
这是因为在C# ^中,XOR的意思是,而不是“提升到…的力量”。若要将数字平方,请使用
Math.Pow(x, 2)或者简单的
x * x除法整数也截断小数部分。使用decimal、double或float将3.5作为3和4的中点:
float x1=2
float x2=7
float Xmid = (x1 + x2)/2;发布于 2013-09-26 00:31:08
您的第一行代码:
int sideA = (m^2) - (n^2);基本上是m XOR 2减去n XOR 2。XOR是一个逐位运算符,其结果是一个是真的位,但不是两者都是。有关独占或运算符的详细信息,请参阅维基百科。如果您试图将m提升到2的强大功能,请尝试如下所示:
int sideA = Math.Pow(m, 2) - Math.Pow(n, 2);你的第二行代码:
float Xmid = (x1 + x2)/2;是(2 + 7),它是9,除以整数2为4.5,但是,由于整数除以另一个整数将总是导致整数,只有结果的整数部分将被保留。将这个表达式分配给一个float的事实是不相关的。
你可能想试试:
float Xmid = (x1 + x2)/2.0;或者:
float Xmid = (x1 + x2)/2f;或者声明x1和x2为浮动,这两者都将产生4.5。
https://stackoverflow.com/questions/19017349
复制相似问题