在使用 c# 从 excel 中读取大于 12 位的数字时,数字被转换为零
Posted
技术标签:
【中文标题】在使用 c# 从 excel 中读取大于 12 位的数字时,数字被转换为零【英文标题】:while reading number greater than 12 digits from excel using c#,number get converted to zero 【发布时间】:2013-03-18 13:08:38 【问题描述】:我正在尝试使用 c# 使用以下查询从 excel 文件中读取长度大于 12 位的数字
"select Format([F1], 'Number') as Code";
但我只正确得到了 12 位数字,其余数字都转换为零。为什么会这样??
示例:787767786546347
从 excel 文件中读取时我得到的是 787767786546000
【问题讨论】:
c#变量是什么类型。对于所需的 c# 类型,您的 execel 编号是否很大? 我正在将值放入数据集中 我是你得到的实际价值是多少?也许最好显示/说明这一点,以便其他人可以看到您正在使用的 12 位数字 @DJKRAZE 添加了一个例子787767786546347
是什么国家代码?你有整数吗?那为什么要在F1
中使用Format
函数呢?
【参考方案1】:
根据 MSDN:
Excel 遵循关于如何存储和计算浮点数的 IEEE 754 规范。因此,Excel 在一个数字中只存储 15 位有效数字,并将第 15 位之后的数字更改为零。
要解决此问题,请将单元格设置为文本格式。然后该单元格最多可显示 1,024 个字符。
http://support.microsoft.com/kb/269370
【讨论】:
我理解这个问题的方式,即 excel 数字是正确的,但是在转换为 c# 时他错过了数字。 ya das rite 但限制是 15 ,但我只能读取 12 位数字,其余的都是零,为什么??以上是关于在使用 c# 从 excel 中读取大于 12 位的数字时,数字被转换为零的主要内容,如果未能解决你的问题,请参考以下文章