c# - 除法和乘以相同数字时表达式上的 Math.Ceiling()

标签 c# multiplication divide

我在 C# 中使用 Math.Ceiling() 时遇到了一些问题。

我将其称为除以一个数字,然后乘以相同数字的结果,例如20 000/184 * 184。我预计结果是 20 000,但实际结果是 20 001。在尝试向上取整值时,是否有任何可能的方法可以避免这种行为?

提前谢谢

最佳答案

运行您提供的代码时,我们有以下内容

20000/oneEightyFour * oneEightyFour

答案是20000.000000000000000000000001

因此,当您制作上限时,我们有 20001

通过下面的文章,我认为结果是由于执行除法时引入的不准确,这会产生108.69565217391304347826086957,正如乔恩所说

As a very broad rule of thumb, if you end up seeing a very long string representation (ie most of the 28/29 digits are non-zero) then chances are you've got some inaccuracy along the way.

http://csharpindepth.com/Articles/General/Decimal.aspx

关于c# - 除法和乘以相同数字时表达式上的 Math.Ceiling(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31923380/

相关文章:

c++ - opencv - 图像乘法

java - 如何将一些矩阵合并为一个?

html - CSS | Div 背景图片

r - 基于行分割矩阵

c# - 如何使用linq分配两个列表,并使用int创建一个新对象的列表?

c# - 存储库模式和一对多关系

c# - 绑定(bind)到详细信息 View 控件中的复选框时将 DBNull 转换为 bool 值

Python-将不同大小的数据帧相乘

sum - PIG : sum and division, 创建对象

c# - 将对象序列化为 XML 以获取命名为字段值的标签列表