excel 值中的额外小数位
Extra decimal positions in excel values
我正在尝试通过 excel 上传将一些数据加载到我们的应用程序中,但似乎某些数字字符串并未像 Excel 那样进行转换,而是调整为“关闭”值有额外的小数位。
示例:
excel 中的 0.65 在数据库中变为 0.6499999999999999,0.83 在数据库中变为 0.8299999999999999。
我们已经检查了电子表格中单元格的显示格式,以查看是否将其显示为四舍五入到两个位置或更多位置或实际单元格数据中的公式,但没有发现任何内容。
非常感谢任何帮助。
我们正在使用 Excel 2016.
提前致谢。
原因可能是二进制/十进制转换错误。有些数字用十进制表示很简单,但用二进制表示就没那么简单了。当这些二进制表示四舍五入时,结果是一个不精确的答案,可以奇怪地转换回十进制。我建议在进入 Excel.
后四舍五入这些值
=ROUND(A1,2)
应该可以解决问题。如果需要,您可以使用 copy/paste 值覆盖原始数据。 VBA.
中函数名相同
恐怕这就是生活。 Excel 对数字数据使用 IEEE754 双精度浮点类型,在最坏的情况下,它为您提供 15 位十进制有效数字的精度。
0.65
,例如,不是二元有理数,因此不能精确地用浮点数表示。
如果您不对数据进行任何数值计算,那么最好的办法是将字段视为文本,在它们前面加上单引号字符。
我正在尝试通过 excel 上传将一些数据加载到我们的应用程序中,但似乎某些数字字符串并未像 Excel 那样进行转换,而是调整为“关闭”值有额外的小数位。
示例: excel 中的 0.65 在数据库中变为 0.6499999999999999,0.83 在数据库中变为 0.8299999999999999。
我们已经检查了电子表格中单元格的显示格式,以查看是否将其显示为四舍五入到两个位置或更多位置或实际单元格数据中的公式,但没有发现任何内容。
非常感谢任何帮助。
我们正在使用 Excel 2016.
提前致谢。
原因可能是二进制/十进制转换错误。有些数字用十进制表示很简单,但用二进制表示就没那么简单了。当这些二进制表示四舍五入时,结果是一个不精确的答案,可以奇怪地转换回十进制。我建议在进入 Excel.
后四舍五入这些值=ROUND(A1,2)
应该可以解决问题。如果需要,您可以使用 copy/paste 值覆盖原始数据。 VBA.
中函数名相同恐怕这就是生活。 Excel 对数字数据使用 IEEE754 双精度浮点类型,在最坏的情况下,它为您提供 15 位十进制有效数字的精度。
0.65
,例如,不是二元有理数,因此不能精确地用浮点数表示。
如果您不对数据进行任何数值计算,那么最好的办法是将字段视为文本,在它们前面加上单引号字符。