gpt4 book ai didi

sql-server - 实数、浮点、货币

转载 作者:行者123 更新时间:2023-12-02 02:30:19 27 4
gpt4 key购买 nike

为什么当我在 SQL Server 中将 40.54 的值保存到 Real 类型的列时,它返回给我的值更像是 40.53999878999 而不是 40.54?我已经见过几次这种情况,但一直不明白为什么会发生这种情况。有其他人遇到过这个问题吗?如果是的话,会导致这个问题吗?

最佳答案

看看What Every Computer Scientist Should Know About Floating Point Arithmetic .

计算机中的 float 并不准确地表示小数。相反,它们代表二进制分数。大多数小数没有二进制分数的精确表示,因此需要进行一些舍入。当这样的四舍五入的二进制分数转换回十进制分数时,您会得到您所描述的效果。

为了存储货币值,SQL 数据库通常提供 DECIMAL 类型来存储精确的十进制数字。这种格式对于计算机来说处理效率稍低,但当您想避免小数舍入错误时,它非常有用。

关于sql-server - 实数、浮点、货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/273371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com