C# 无法隐式转换类型';浮动';至';int';

C# 无法隐式转换类型';浮动';至';int';,c#,C#,当我尝试运行下面的代码时,它给出了一个错误,即“无法隐式地将类型‘float’转换为‘int’” 我做了很多搜索,遗憾的是,我找不到任何帮助,这样的错误 int sum1, cols, rows; float h, twoEnds, x; sum1 = (h - ((cols) * x) + twoEnds)) / (cols + 1); 由于h、two-end和x都是浮点数,以下等式将返回浮点数: sum1 = (h - ((cols) * x) + twoEnds)) / (cols

当我尝试运行下面的代码时,它给出了一个错误,即“无法隐式地将类型‘float’转换为‘int’”

我做了很多搜索,遗憾的是,我找不到任何帮助,这样的错误

int sum1, cols, rows;

float h, twoEnds, x;

sum1 = (h - ((cols) * x) + twoEnds)) / (cols + 1);

由于
h
two-end
x
都是浮点数,以下等式将返回浮点数:

sum1 = (h - ((cols) * x) + twoEnds)) / (cols + 1) 
您可以将sum1更改为float,或将方程式转换为int,如下所示:

sum1 = (int)((h - ((cols) * x) + twoEnds)) / (cols + 1));

错误说明了这一点

无法将类型“float”隐式转换为“int”

因此,您有一个
float
结果,它不能隐式转换为
sum1
,它的类型为
int
。尝试显式转换/强制转换它:


请记住,我使用的是C#。
那么
C
C++
标记的原因是什么?转换为
int
sum1=(int)((h-…/(cols+1))
是的,因为没有从float到int的隐式转换。目前,您声明了
x
两次;这甚至不会编译。哦,是的。我在这里错误地复制了它,但在我的代码中它没有声明两次。无论如何,谢谢大家,它成功了=)
 sum1 = (int) ((h - ((cols) * x) + twoEnds)) / (cols + 1));