gpt4 book ai didi

SQL Server 2005 : Round returns incorrect value if I use a float variable

转载 作者:行者123 更新时间:2023-12-02 23:38:31 25 4
gpt4 key购买 nike

在 SQL Server 2005 中,当我尝试对存储在浮点变量中的值进行舍入时,得到的值不正确。在下面的示例中,我希望对 ROUND 函数的两次调用都应返回 5.6:

DECLARE @foo float;
DECLARE @bar float;
DECLARE @baz float;

SET @foo = 5.55;
SET @bar = ROUND(@foo, 1) --> 5.5
SET @baz = ROUND(5.55, 1) --> 5.6

我做错了什么?

最佳答案

我不建议使用float 数据类型来获取精确的decimal 值。

在这种特殊情况下,您可以将 @foo 变量转换为 十进制:

SET @bar = ROUND(CAST(@foo as DECIMAL(10,2)), 1) --> 5.6

What Every Computer Scientist Should Know About Floating-Point Arithmetic

关于SQL Server 2005 : Round returns incorrect value if I use a float variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665960/

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