6

我正在使用互操作服务从 C# 读取 excel 表。我的工作表有一个单元格值为 0.00。但是当我在 C# 代码中检查该单元格的值时,运行时我得到“1.845E-07”这个值。当我签入 Excel 表时,在该单元格上右键单击,说格式单元格,我在示例部分得到“1.845E-07”值。如何获得准确的价值?请帮我。代码很大,所以我不能在这里提供。那行是:

if (Convert.ToString(((Excel.Range)worksheet.Cells[iRowindex, colIndex_q10]).Value2) != string.Empty)
{
    drRow[dtSourceEXLData.Columns[constants.Floor]] = ((Excel.Range)worksheet.Cells[iRowindex, colIndex_q10]).Value2.ToString();
}

日期单元格“39448”也有同样的问题。这是什么意思?请帮忙....

4

2 回答 2

14

1.84E-07 是精确值,用科学记数法表示,也称为指数记数法。

1.845E-07 与 0.0000001845 相同。Excel 会将非常接近 0 的数字显示为 0,除非您修改单元格的格式以显示更多小数。

但是,C# 将从单元格中获取实际值。ToString 方法在将小数字转换为字符串时使用电子表示法。

如果您不想使用电子符号,可以指定格式字符串。

于 2010-05-05T12:05:03.373 回答
1

突出显示单元格,格式化单元格,选择自定义,然后选择零。

于 2014-07-02T16:30:25.977 回答