当使用c#从excel中读取大于12位的数字时,数字被转换为零

本文关键字:数字 转换 12位 大于 excel 读取 | 更新日期: 2023-09-27 18:04:34

我正在尝试使用c#从excel文件中读取长度大于12位的数字使用下面的查询

 "select Format([F1], 'Number') as Code";

但是我只得到12位正确的数字,其余的数字都转换成零。为什么会这样?

示例:当从excel文件中读取787767786546347时,我得到的是787767786546000

当使用c#从excel中读取大于12位的数字时,数字被转换为零

根据MSDN:

Excel遵循IEEE 754关于如何存储和计算浮点数的规范。因此,Excel在一个数字中只存储15位有效数字,并将第15位之后的数字更改为零。

若要解决此行为,请将单元格格式化为文本。单元格最多可以显示1024个字符。

http://support.microsoft.com/kb/269370