gpt4 book ai didi

C# - 四舍五入整数除法

转载 作者:太空狗 更新时间:2023-10-30 00:42:19 26 4
gpt4 key购买 nike

Windows、C#、VS2010。

我的应用有这段代码:

int[,] myArray=new int[10,2];
int result=0;
int x=0;
x++;

如下所示,如果结果在 10.0001 和 10.9999 之间;结果=10

result= (myArray[x,0]+myArray[x+1,0])/(x+1); 

我需要这个:如果 result>=10&&result<10.5 舍入为 10。如果 >=10.500&&<=10.999 之间的结果四舍五入到 11。

试试下面的代码。但没有奏效。

result= Math.Round((myArray[x,0]+myArray[x-1,0])/(x+1));

错误:以下方法或属性之间的调用不明确:'System.Math.Round(double)' 和 'System.Math.Round(decimal)'

错误:无法将类型“double”隐式转换为“int”。存在显式转换(是否缺少强制转换?)

result= Convert.ToInt32(Math.Round((myArray[x,0]+myArray[x-1,0])/(x+1)));

错误:以下方法或属性之间的调用不明确:'System.Math.Round(double)' 和 'System.Math.Round(decimal)'

提前致谢,ocaccy pontes。

最佳答案

尝试

result= (int)Math.Round((double)(myArray[x,0]+myArray[x-1,0])/(x+1));

这应该可以消除您的编译器错误。

第一个(“错误:调用在以下方法或属性之间不明确:'System.Math.Round(double)' 和'System.Math.Round(decimal)'”)通过转换股息来解决到一个 double,它“滴流”使得除法的输出也是一个 double 以避免精度损失。

您还可以显式地将函数参数转换为 double 以获得相同的效果:

Math.Round((double)((myArray[x,0]+myArray[x-1,0])/(x+1)));

(注意括号的位置)。

第二个错误(“错误:无法将类型‘double’隐式转换为‘int’。存在显式转换(是否缺少强制转换?)”)通过显式转换 Math 的返回值来修复。将 舍入为 int

关于C# - 四舍五入整数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com