sql-server – 在sql查询中使用bigint时得到错误的结果

我在查询中传递了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的原因.

点赞