使用c#从excel中读取大于12位的数字时,数字会转换为零
我正在尝试使用c#使用下面的查询从excel文件中读取长度大于12位的数字使用c#从excel中读取大于12位的数字时,数字会转换为零,c#,asp.net,excel,C#,Asp.net,Excel,我正在尝试使用c#使用下面的查询从excel文件中读取长度大于12位的数字 "select Format([F1], 'Number') as Code"; 但是我只正确地得到了12位数字,其余的数字都被转换成了零。为什么呢 示例:787767786546347当从excel文件中读取时,根据MSDN,我得到的是787767786546000: Excel遵循IEEE 754关于如何存储和计算浮点数的规范。因此,Excel在一个数字中只存储15位有效数字,并将第15位之后的数字更改为零 要解
"select Format([F1], 'Number') as Code";
但是我只正确地得到了12位数字,其余的数字都被转换成了零。为什么呢
示例:787767786546347
当从excel文件中读取时,根据MSDN,我得到的是787767786546000
:
Excel遵循IEEE 754关于如何存储和计算浮点数的规范。因此,Excel在一个数字中只存储15位有效数字,并将第15位之后的数字更改为零
要解决此问题,请将单元格格式化为文本。然后,该单元格最多可以显示1024个字符
什么类型的c变量。对于desire c#type,你的execel数是不是太大了?我正在将值输入一个dataseti,你得到的实际值是多少?也许最好展示/陈述一下,这样其他人就可以看到你在12个方面的工作digits@DJKRAZE添加了一个示例:什么类型的国家代码是
787767786546347
?你有整数吗?那么为什么要将Format
函数与F1
一起使用呢?我理解这个问题,excel数字是正确的,但当转换为c时,他会漏掉数字。是的,但限制是15,但我只能读取12位,其余都是零。为什么??