转换为float时解决数字溢出问题

时间:2010-08-23 17:40:27

标签: sql sql-server sql-server-2005 tsql types

我有一个浮点值,我需要做一些计算并插入数字(9,2)。然而,在罕见的(并且可能是错误的)情况下,存在一些数据异常,并且我最终得到的值不适合数字(9,2)。

这个问题的解决方案是什么?如果数字是9999999.99或更高,也许只使用9999999.99?

任何更好的想法(当然除了更改列数据类型)

谢谢!

编辑:

我只想让事情顺利进行。 我无法“纠正”数据。 我不能省略它,因为当我做一个sumation时,没有迹象表明这个值是错误的。 我们正在谈论一个分数的分数,有一部分数据存在这个问题。 只需要运行查询。

4 个答案:

答案 0 :(得分:4)

如果您认为案件有误,则应提出错误,并应纠正用于计算的原始数据。不要掩盖原始问题,并通过尝试存储一些人为值来使错误更深入到系统中。

答案 1 :(得分:3)

这是一个商业决定!我怎么可能知道你的应用程序并猜测出现问题时你应该怎么做?如果这是一个会计应用程序,请将数字四舍五入并存入我的账户!

您应该在计算之前验证数据,并使用消息/错误日志停止并注明问题值。您在此列中输入的任何“假”值都需要由其他代码处理,因此请不要这样做。

答案 2 :(得分:1)

截断/舍入不是一种选择吗?

如何改为NULL呢?

为该条件设置特殊数据值并不正确。

答案 3 :(得分:1)

添加独立的溢出字段或变量,或引入错误条件。