从包含小数的 Excel 单元格读取值时,我遇到以下问题:如果我在 Excel 的单元格中输入 9.95,CellValue.InnerText
在 C# 中返回“9.9499999999999993”
我怎样才能获得输入的实际值,即“9.95”,知道试图获取这些值的代码事先并不知道它是小数还是数字。
Excel 将值存储为双精度浮点 http://en.wikipedia.org/wiki/Floating_point数字,很多时候您在 Excel 中输入的内容不能精确地存储为浮点数。
http://blogs.office.com/2008/04/10/understanding-floating-point- precision-aka-why-does-excel-give-me-seemingly-wrong-answers/ http://blogs.office.com/2008/04/10/understanding-floating-point-precision-aka-why-does-excel-give-me-seemingly-wrong-answers/
如果您确实想了解 Excel 如何存储您的值,您可以将 .xlsx 扩展名更改为 .zip,打开它,然后在文件中查看。这是您手机上存储的所有信息:
<sheetData>
<row r="1" spans="1:1" x14ac:dyDescent="0.3">
<c r="A1">
<v>9.9499999999999993</v>
</c>
</row>
</sheetData>
Excel 可以设计为存储您输入的精确值(通过将它们存储为十进制而不是浮点数),但算术运算会慢很多,因为所有计算都将在软件而不是硬件中完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)