C# 四舍五入算术表达式

C# 四舍五入算术表达式,c#,C#,所有变量都是int 如何在不强制转换的情况下将boxTotal四舍五入为所有变量的两倍?如果所有变量都是整数,则无法执行此操作。其中至少有一个必须是双精度的或浮动的。要四舍五入到最接近的整数,可以使用Math.Ceilingvalue,但必须将括号中的内容转换为十进制,将结果转换为int。 例如: itog = first/second/third; 如果你不想把所有的都变成双倍 int result = (int)Math.Ceiling((decimal)yourExpression);

所有变量都是int


如何在不强制转换的情况下将boxTotal四舍五入为所有变量的两倍?

如果所有变量都是整数,则无法执行此操作。其中至少有一个必须是双精度的或浮动的。要四舍五入到最接近的整数,可以使用Math.Ceilingvalue,但必须将括号中的内容转换为十进制,将结果转换为int。 例如:

itog = first/second/third;

如果你不想把所有的都变成双倍

int result = (int)Math.Ceiling((decimal)yourExpression);

可能会起作用,尽管我还没有测试过。如果除法是错误的,则至少需要将一个数转换为另一个数的两倍。

两个数字的典型独立语言实现是a+b-1/b,其中a和b是整数。

根据gudok的答案,您可以使用以下方法:

itlog = (int)Math.Ceiling(first/(double)second/third); 

如果你想除法,那么你真的不应该用整数。你的问题对我来说似乎有点不清楚。你能创建一个至少包含你的值和预期结果的表达式吗?对不起,它应该是你的表达式。谢谢@SamiKuhmonenthanks,按建议编辑。正如我所说,我还没有运行代码。出于某种原因,我认为操作是从右向左的,现在我认为这是完全错误的:
itog = (first/second +(third - 1)) / third;