带有Math.Ceiling的表达式C#

本文关键字:表达式 Ceiling Math 带有 | 更新日期: 2024-10-22 23:44:07

嗨,我有一个数据表,其中显示了每1纸箱的最低库存、库存和数量。我想添加一列,计算我们订购了多少纸箱。这是我的公式:

dt.Columns["QuantityOrder"].Expression = "(MinimumStock-Stock)/ QuantityPerCarton"; 

因为我想做以下例子:如果MinimumStock=4,Stock=1和QuantityPerCarton=12。我想要QuantityOrder=1即使它是<1和>0。所以我尝试了这个:

dt.Columns["QuantityOrder"].Expression = Math.Ceiling("(MinimumStock-Stock)/ QuantityPerCarton"); 

但它有一个构建错误:

The best overloaded method match for 'System.Math.Ceiling(decimal)' has some invalid arguments  

Argument 1: cannot convert from 'string' to 'decimal'   

我该怎么办?这是一个用c#编写的数据表

Update:如果int将数据类型四舍五入为0,则数据类型为double

更新2:库存将永远不会超过最低库存,因为我用sql 过滤了它

带有Math.Ceiling的表达式C#

您可以使用内联if运算符和模函数%来实现计算

string exp = "IIF(Stock > MinimumStock, 0, ((MinimumStock - (MinimumStock-Stock % QuantityPerCarton))/QuantityPerCarton)+1)"
dt.Columns["QuantityOrder"].Expression = exp