【问题标题】:Extra decimal positions in excel valuesexcel 值中的额外小数位
【发布时间】:2018-01-24 13:51:14
【问题描述】:

我正在尝试通过 excel 上传将一些数据加载到我们的应用程序中,但似乎某些数字字符串没有像在 Excel 中那样转换,而是调整为带有额外小数位的“关闭”值。

示例: excel中的0.65变成0.6499999999999999,数据库中的0.83变成0.8299999999999999。

我们检查了电子表格中单元格的显示格式,看它是否显示它在实际单元格数据中四舍五入到两个位置或更多位置或一个公式,但没有发现任何内容。

非常感谢任何帮助。

我们使用的是 Excel 2016。

提前致谢。

【问题讨论】:

    标签: excel excel-2016


    【解决方案1】:

    原因可能是二进制/十进制转换错误。有些数字用十进制表示非常简单,但用二进制表示并不那么简单。当这些二进制表示被四舍五入时,结果是一个不精确的答案,可以奇怪地转换回十进制。我建议在输入 Excel 后将值四舍五入。

    =ROUND(A1,2)
    

    应该可以解决问题。如果需要,您可以使用复制/粘贴值来覆盖原始数据。函数名在VBA中是一样的。

    【讨论】:

      【解决方案2】:

      这就是我害怕的生活。 Excel 对数字数据使用 IEEE754 双精度浮点类型,在最坏的情况下,它会为您提供 15 位十进制有效数字的精度。

      例如,

      0.65 不是二元有理数,因此不能精确地用浮点数表示。

      如果您不对数据进行任何数值计算,那么最好的办法是将字段视为文本,并在它们前面加上一个单引号字符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2019-10-11
        相关资源
        最近更新 更多