gpt4 book ai didi

c# - DataTable.Expression方法不使用C#整数除法

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:22 29 4
gpt4 key购买 nike

DataTable dataTable = new DataTable();
dataTable.Columns.Add("", typeof(double));
dataTable.Columns[0].Expression = "(1/3)*3000.00";
DataRow r = dataTable.NewRow();
dataTable.Rows.Add(r);
int result = dataTable.Rows[0][0];

计算的 result 是 1000,但我预计是 0,因为 1/3 = 0 和 (0)*3000.00 = 0。

最佳答案

当您将列类型指定为 double 时,不会进行整数除法:

  DataTable dt = new DataTable();           
dt.Columns.Add("X", typeof(int));
dt.Columns.Add("Y", typeof(int));
dt.Columns.Add("R", typeof(int), "X/Y");
dt.Columns.Add("", typeof(double), "R*3000.00");
dt.Columns.Add("test", typeof(double), "(1/3)*3000.00");
DataRow r = dt.NewRow();
r["X"] = 1;
r["Y"] = 3;
dt.Rows.Add(r);
int i = (int)dt.Rows[0]["R"]; //return 0
double d = (double)dt.Rows[0][3]; //return 0.0
double d1 = (double)dt.Rows[0]["test"]; //return 1000.0

关于c# - DataTable.Expression方法不使用C#整数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885676/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com