繁体   English   中英

(C#)如何从DataTable的轴中查找单元格/将数字除以二

[英](C#) How to find a cell from the axis of a DataTable / Divide a number Into two

我从正态分布表创建了一个数据表。 我的DataTable的第一行和第一列是两个轴(请参见下面的链接)

我需要创建一个函数,该函数根据我要的数字从此数据表中找到相应的数字。

例:如果我要求0.92,则函数应将数字0.9和0.02分开(两者相加得出我们的初始数字),并检查轴是否找到该位置的数字。

由于我无法清楚解释,因此这里是它需要做什么的图片。

在此处输入图片说明

黄色单元格是将0.92分成两个轴,红色单元格是我需要的返回值。

我不知道该怎么办的两件事:

  • 分隔初始数字(0,92)
  • 使用DataTable的第一行和第一列(0,9和0,02)查找单元格

哦,(0,0)是-1

您可以尝试以下方法:

// input:
double d = 0.87d;
// convert to integer
int i1 = (int)(d * 100);
// all but the last digit
int i2 = i1 / 10;
// last digit alone
int i3 = i1 - (i2 * 10);

i3应该是目标单元格的列索引,而i2是行:

 double t = yourDataTable.Rows[i2].Field<double >(i3);

一些注意事项:

  • 不确定(0,0)的含义是-1,但是您始终可以为特殊情况添加if子句,或者可以修改表内容。

  • 如果您显示的标题实际上是表数据的一部分,那么您当然可以添加一个偏移量。

  • 如果行数超过99,9 ,则不应使用100而应使用更大的10 ..

  • 另请注意,看似清晰的小数位数实际上并不存在于二进制数中; 因此, integer是一种简单的方法,可以避免在floatsdoubles数中使用计算或通过strings进行计算时可能导致的复杂性。 但是,可以使用decimal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM