4

我在查询中通过了AmountDue,但得到错误的结果。 AmountDue数据类型为Float。在sql查询中使用bigint时出现错误结果

AmountDue: 2412880.28 
AmountDue: 561.06 

我的查询:

select CONVERT(varchar,(select convert(bigint,AmountDue*100))) 
from dbo.tblBidResults 

我得到下面的结果是错误的:

241288027 
56105 

正确的结果:

241288028 
56106 
+2

什么数据类型是'AmountDue'? – HABO 2013-05-08 20:29:56

+0

AmountDue数据类型为Float – user2205924 2013-05-08 20:31:49

回答

1

尝试转换为数字,而不是BIGINT :

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

有一个good post在这里超越了这个原因。

+0

谢谢你这个工作 – user2205924 2013-05-10 19:08:02

1
DECLARE @temp float 
set @temp = 2412880.28 
select convert(varchar,convert(decimal(9,0),@temp*100)) 

SQL FIDDLE