表达式C#与Math.Ceiling

时间:2015-03-07 11:59:04

标签: c# .net datatable expression rounding

嗨所以我有数据表显示每个纸箱的最小库存,库存和数量。我想添加一个列来计算我们订购的CARTON数量。这是我的公式:

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#

编写

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

更新2 :股票从不超过最低股票,因为我用sql过滤了

1 个答案:

答案 0 :(得分:-1)

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

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