我正在尝试通过Excel上传将一些数据加载到我们的应用程序中,看起来有些数字字符串没有像在Excel中那样进行转换,而是调整为带有额外小数位的'close'值。
实施例: excel中的0.65变为0.6499999999999999,数据库中的0.83变为0.8299999999999999。
我们检查了电子表格中单元格的显示格式,看看它是否显示四舍五入到两个位置,或者更多位置或实际单元格数据中的公式,但没有发现任何内容。
非常感谢任何帮助。
我们正在使用Excel 2016。
提前致谢。
答案 0 :(得分:1)
原因可能是二进制/十进制转换错误。有些数字很容易用十进制表示,但二进制表示不那么简单。当这些二进制表示被四舍五入时,结果是一个不精确的答案,可以奇怪地转换回十进制。我建议在进入Excel后将值四舍五入。
=ROUND(A1,2)
应该做的伎俩。如果需要,您可以使用复制/粘贴值覆盖原始数据。 VBA中的函数名称相同。
答案 1 :(得分:1)
我害怕的生活。 Excel对数字数据使用IEEE754双精度浮点类型,在最坏的情况下,它为您提供15位十进制精度数字。
例如, 0.65
不是一个二元理性,因此无法用浮点表示。
如果您没有对数据进行任何数值计算,那么最好的办法是将字段视为文本,方法是在其前面加上单引号字符。