学习 C#,数学公式未按预期生成

本文关键字:数学公式 学习 | 更新日期: 2023-09-27 18:32:53

学习 C#,数学方程式未按预期生成。这是我的作业的一部分。我不明白为什么结果没有按照他们应该的结果出来......

第一个等式

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

结果 -3

第二个等式

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

结果 4

学习 C#,数学公式未按预期生成

这是因为在C#中,^表示XOR,而不是"提升到幂"。要对数字进行平方,请使用

Math.Pow(x, 2)

或者干脆

x * x

此外,除整数也会截断小数部分。 使用 decimaldoublefloat 得到 3.5 作为 3 和 4 的中点:

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

你的第一行代码:

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

基本上是m XOR 2减去n XOR 2。 XOR 是一个按位运算符,它产生的位为真,但不是两个都为真。 有关独占 OR 运算符的更多信息,请参阅维基百科。 如果你想把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;

x1x2声明为浮点数,两者都会产生4.5