实数、浮点数、货币

2023-12-12

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


看一下每个计算机科学家都应该了解的浮点运算知识.

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实数、浮点数、货币 的相关文章

随机推荐