自己解决了(精度为小数点后面两位),方法如下:
//四舍五入
adt.Columns["Salary3"].Expression = "Convert(Salary1 * 100 + 0.000000001,'System.Int32') / 100";
//只舍不入
adt.Columns["Salary4"].Expression = "Convert((Salary1 - 0.005 + 0.000000001) * 100,'System.Int32') / 100";
//只入不舍
adt.Columns["Salary5"].Expression = "Convert((Salary1 + 0.005 - 0.000000001) * 100,'System.Int32') / 100";
注意:
这里面如果不加0.000000001则0.125被“四舍五入”成0.12,
0.1251会才会被“四舍五入”成0.13的问题。
//四舍五入
adt.Columns["Salary3"].Expression = "Convert(Salary1 * 100 + 0.000000001,'System.Int32') / 100";
//只舍不入
adt.Columns["Salary4"].Expression = "Convert((Salary1 - 0.005 + 0.000000001) * 100,'System.Int32') / 100";
//只入不舍
adt.Columns["Salary5"].Expression = "Convert((Salary1 + 0.005 - 0.000000001) * 100,'System.Int32') / 100";
注意:
这里面如果不加0.000000001则0.125被“四舍五入”成0.12,
0.1251会才会被“四舍五入”成0.13的问题。
//四舍五入
adt.Columns[ "Salary3 "].Expression = "Convert(Salary1 * 100 + 0.1, 'System.Int32 ') / 100 ";
Convert((iUnitCost*iQuantity)*100+0.00000001,'System.Int32')/100.0
因为 整数99/整数100 的结果是整数零。