gpt4 book ai didi

c# - 为什么 C# Math.Ceiling 向下舍入?

转载 作者:太空狗 更新时间:2023-10-29 17:30:50 27 4
gpt4 key购买 nike

我今天过得很糟糕,但有些事情没有正确加起来。

在我的 C# 代码中,我有这个:

Math.Ceiling((decimal)(this.TotalRecordCount / this.PageSize))

其中 (int)TotalRecordCount = 12 和 (int)PageSize = 5。我得到的结果是 2。
(两个值都是 int 值。)

根据我的计算,12/5 = 2.4。我以为 Math.Ceiling 总是四舍五入,在这种情况下,给我 3?

PS,如果我这样做:

Math.Ceiling(this.TotalRecordCount / this.PageSize)

我收到消息:

Math.Ceiling(this.TotalRecordCount / this.PageSize)
The call is ambiguous between the following methods or properties:
'System.Math.Ceiling(decimal)' and 'System.Math.Ceiling(double)'

最佳答案

您看到“向下舍入”是因为截断发生在到达 Math.Ceiling 之前。

当你这样做的时候

(this.TotalRecordCount / this.PageSize)

它是一个整数除法,它的结果是一个截断的int;将其转换为 decimal 为时已晚。

要解决此问题,请在除法之前进行转换:

Math.Ceiling(((decimal)this.TotalRecordCount / this.PageSize))

关于c# - 为什么 C# Math.Ceiling 向下舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431043/

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