2017-09-16 35 views
1

我想输入一个int值到双精确计算平均值,但我得到这个错误。类型铸造从Int到双重在c#eror

严重性代码说明项目文件的线路抑制状态 错误CS1525无效表达术语“双师型”

我have'nt用C#的一段时间,所以这是可能的,我错了语法明智的。但环顾网络,我找不到答案。

下面是编译好的代码。

static int AvgDigits(int n) 
{   
    return SumDigits(n)/double(Dignum(n)); 
} 

回答

2

你应该附上double到paranthesis ((double)(Dignum(n)))这将铸就价值Dignum(n)到dobule

return SumDigits(n)/((double)(Dignum(n))); 

也因为你是铸造它的两倍,你的返回类型应该是双,

static double AvgDigits(int n) 
{   
    return SumDigits(n)/((double)(Dignum(n))); 
} 
+1

这是问题之一。我也忘了将函数返回类型从int更改为double。非常感谢。 – hjsv41

+0

酷!更新它,以便它有用 – Sajeetharan

+0

@ hjsv41标记答案,如果它有帮助 – Sajeetharan

0

直到我知道这个函数应该被命名为static double blablabla。你看,当你返回一些东西时,它必须是一个兼容函数输出值的类型。如果不是的话,JRE会让你知道,在这种情况下,对int进行加倍的愿望应该明确地被剔除。

In static int AvgDigits(int n) 它接收一个int并返回一个int。眼看作为操作实际上是一个双,你可以尝试改变功能 静态双AvgDigits(INT N)

祝你好运!告诉我它是否有效!