【发布时间】:2013-09-19 04:22:27
【问题描述】:
我正在通过System.Data.OleDb.OleDbConnection VB.net 中的filehandler 上传货币汇率工作簿。
在 Excel 表中查看费率时,我看到 0.55865921787709500000。
在调试模式下查看数据表中相同的速率,我看到0.55865921787709480000。
在 Excel 中,小数位设置为 20 - 似乎只是在小数位 15 后补零。
我已尝试将单元格读取/写入文本文件(相同的“500000”结果)。
尝试将工作簿保存为逗号分隔的文本文件 - 相同的 '500000' 结果。
费率工作表是从另一个网站创建的。我试图在工作表中添加第 16 个数字,但在我移出单元格后它会翻转回零。我知道 Excel 有 16 位的精度限制。在这种情况下,它似乎存储了更多。
除了检查数据表之外,还有什么方法可以查看工作簿中的实际存储值?
【问题讨论】:
-
您有权更改哪些内容?我们可以看看您可以更改的代码吗?
-
我可以更改导入代码以截断多余的数字。我在问为什么当您在 Excel 中查看数字时 Excel 选择存储超过 15 个有效数字并隐藏 #16。工作簿的 OLEdb 读取产生的数据表显示 16 位,工作簿显示 15。
-
我是由一位同事处理的。原始价目表由 Crystal Reports 生成。他能够在 Google Docs 下查看费率表,并显示了额外的数字。为了回答我自己的问题,Excel 存储了超过 15 个有效数字,具体取决于创建 Excel 文件的应用程序。