Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单的数学问题。用C四舍五入#_C# - Fatal编程技术网

C# 简单的数学问题。用C四舍五入#

C# 简单的数学问题。用C四舍五入#,c#,C#,假设我有一个int,它表示集合中的行数,我想确定在给定一定页面大小的情况下保存集合所需的页面数 因此,如果我的页面大小为20,集合大小为89,我需要5页 Math.Round函数是如何得到我需要的?我需要四舍五入到下一个整数,而不是最近的整数 谢谢你的建议。你根本不想使用Math.Round()。您应该使用Math.天花板(),它将返回大于传入的双精度的最小整数值: var pageSize = 20D; var pages = Math.Ceiling(collection.Count() /

假设我有一个int,它表示集合中的行数,我想确定在给定一定页面大小的情况下保存集合所需的页面数

因此,如果我的页面大小为20,集合大小为89,我需要5页

Math.Round函数是如何得到我需要的?我需要四舍五入到下一个整数,而不是最近的整数


谢谢你的建议。

你根本不想使用Math.Round()。您应该使用Math.天花板(),它将返回大于传入的双精度的最小整数值:

var pageSize = 20D;
var pages = Math.Ceiling(collection.Count() / pageSize);

我相信你正在寻找的就是Math.天花()。

使用天花:

正如其他人所说,你可以双倍使用Math.天花。但是为什么呢?您可以完全使用整数算术来完成这项工作

但是,如果您阅读了所有答案的所有搞笑评论,您将看到,有时您必须尝试五到六次,才能获得正确的代码


啊,好的,数学,天花板!它显示:错误10以下方法或属性之间的调用不明确:“System.Math.天花板(十进制)”和“System.Math.天花板(双精度)”@frenchie-你看到我的更新了吗?确保将pageSize指定为双精度。这将解决问题。小更正:
Math.天花()
返回大于或等于传入值的最小整数值(这当然是OP要求的正确行为)。还值得注意的是,
Math.Ceiling()
返回的整数值不是整数类型:它要么是
double
要么是
decimal
,这取决于调用哪个重载。的可能重复我认为这不是重复。OP的要求要简单得多;他不在乎过多的施法。在
double
上使用
Math.Ceiling
可以产生简短、熟悉、易读的代码。我怀疑使用
double
会带来性能瓶颈。我认为避免浮点运算只会使解决方案复杂化。