我在查询中通过了低于 AmountDue 的值,但得到了错误的结果。 AmountDue 数据类型为 Float。

AmountDue: 2412880.28
AmountDue: 561.06

我的查询:
select CONVERT(varchar,(select convert(bigint,AmountDue*100)))
from dbo.tblBidResults

我得到以下结果,这是错误的:
241288027
56105

正确结果:
241288028
56106

最佳答案

尝试转换为数字而不是 bigint:

DECLARE @temp float
set @temp = 2412880.28
SELECT CONVERT(varchar,(CONVERT(numeric(27,0),@temp*100)))

有一个 good post 在这里解释了这个原因。

关于sql-server - 在 sql 查询中使用 bigint 时得到错误的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16449567/

10-13 00:49