首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习C#,数学方程不像预期的那样

学习C#,数学方程不像预期的那样
EN

Stack Overflow用户
提问于 2013-09-26 00:25:47
回答 2查看 150关注 0票数 2

学习C#,数学方程没有得到预期的结果。这是我作业的一部分。我不明白为什么结果不像他们应该说的那样出来。

第一方程

代码语言:javascript
复制
m=2
n=1

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

结果-3

第二方程

代码语言:javascript
复制
x1=2
x2=7

float Xmid = (x1 + x2)/2;

结果4

EN

回答 2

Stack Overflow用户

发布于 2013-09-26 00:27:47

这是因为在C# ^中,XOR的意思是,而不是“提升到…的力量”。若要将数字平方,请使用

代码语言:javascript
复制
Math.Pow(x, 2)

或者简单的

代码语言:javascript
复制
x * x

除法整数也截断小数部分。使用decimaldoublefloat将3.5作为3和4的中点:

代码语言:javascript
复制
float x1=2
float x2=7

float Xmid = (x1 + x2)/2;
票数 11
EN

Stack Overflow用户

发布于 2013-09-26 00:31:08

您的第一行代码:

代码语言:javascript
复制
int sideA = (m^2) - (n^2);

基本上是m XOR 2减去n XOR 2。XOR是一个逐位运算符,其结果是一个是真的位,但不是两者都是。有关独占或运算符的详细信息,请参阅维基百科。如果您试图将m提升到2的强大功能,请尝试如下所示:

代码语言:javascript
复制
int sideA = Math.Pow(m, 2) - Math.Pow(n, 2);

你的第二行代码:

代码语言:javascript
复制
float Xmid = (x1 + x2)/2;

(2 + 7),它是9,除以整数2为4.5,但是,由于整数除以另一个整数将总是导致整数,只有结果的整数部分将被保留。将这个表达式分配给一个float的事实是不相关的。

你可能想试试:

代码语言:javascript
复制
float Xmid = (x1 + x2)/2.0;

或者:

代码语言:javascript
复制
float Xmid = (x1 + x2)/2f;

或者声明x1x2为浮动,这两者都将产生4.5

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19017349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档