计算数据库单元格值

时间:2012-01-16 18:29:45

标签: c# database division cells

我有一个包含表的数据库,包含两个整数字段。

当我尝试获得百分比(fieldA /(fieldA + fieldB))时,该值为0.

double percentage = fieldA+fieldB // WORKS; 5+5=10
double percentage = fieldA / (fieldA+fieldB) // DOES NOT WORK; 5+5=0

那么这里的问题是什么?感谢..

6 个答案:

答案 0 :(得分:2)

我认为fieldAfieldB是整数吗?如果是,你应该知道,除了方程左边的内容之外,除以两个整数也会得到一个整数。

因此将fieldA除以(fieldA+fieldB)会产生一个值< 1导致零。请参阅维基百科上的Integer Division

要解决此问题,只需将至少一个操作数转换为浮点类型,例如:

double percentage = fieldA/(double)(fieldA+fieldB)

答案 1 :(得分:2)

当你执行fieldA / (fieldA+fieldB)时,得到5/10,如果整数被截断为0,如果你想要0.5,那么你必须进行双重除法。 就像这样:

double percentage = (double)fieldA/(fieldA+fieldB)

答案 2 :(得分:2)

由于fieldA和fieldB是整数,因此表达式fieldA / (fieldA+fieldB)的格式为int / int,这意味着您将使用整数除法,在本例中为5/10 = 0,因为整数除法求解{{ 1}},在这种情况下x = am + b表示5 = a*10 + b

你可以这样做:

a = 0, b = 5

答案 3 :(得分:1)

在应用操作之前,您可能需要将字段转换为双精度

答案 4 :(得分:1)

试试这个:double percentage =(double)fieldA /(double)(fieldA + fieldB)

答案 5 :(得分:1)

如果两个字段都是整数,那么添加两个整数结果也是整数。 试试这个

float result =(float)((A * 100)/(B + A));

答案:结果= 50.0