1

我正在通过filehandlerVB.net 中的System.Data.OleDb.OleDbConnection.

在 Excel 表中查看费率时,我看到0.55865921787709500000.
在调试模式下查看数据表中的相同速率,我看到0.55865921787709480000.

在 Excel 下,小数位设置为20- 似乎只是在小数位 15 后补零。

我已经尝试将单元格读取/写入文本文件(相同的“500000”结果)。
尝试将工作簿保存为逗号分隔的文本文件 - 相同的 '500000' 结果。

费率工作表是从另一个网站创建的。我试图在工作表中添加第 16 个数字,但在我移出单元格后它会翻转回零。我知道 Excel 有 16 位的精度限制。在这种情况下,它似乎存储了更多。

除了检查数据表之外,有没有办法查看工作簿中的实际存储值?

4

1 回答 1

0

Excel 保留超过 15 个有效数字 - 取决于创建原始 Excel 文档的系统。在本例中,文档由 Crystal Reports 生成。可以使用 OLEDB 连接对 Excel 电子表格或通过 Google Docs 版本的 Excel 查看“额外”有效数字。
在这种特殊情况下,我必须使 SQL 存储的费率与电子表格相匹配。我将每个比率转换为小数和字符串。我使用该字符串来定位速率中的周期并开始计算出现在小数点后的连续零。这个计数被添加到 15 作为系统小数点的位数。四舍五入的数字与在 Excel 中查看信息时显示的数字相匹配。

于 2013-09-18T20:22:27.040 回答