我在查询中通过了低于 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/