日期:2014-05-18  浏览次数:20869 次

有关float数据类型,小数位后面变很长,这是什么原因,要怎么解决
我数据表里有个字段是float数据类型,有个记录在sql server里面看是4.6,可是用查询分析器执行select语句取出来就成了4.5999999,后来我把数据类型改成decimal(18,4),可是这样又有个问题,小数点后如果不足四位就会加0,请问一下要怎么解决


------解决方案--------------------
FLoat就是这样
不是必须的用numeric代替
------解决方案--------------------
SQL code
declare @t table(id float)
insert @t select 1
insert @t select 1.23
insert @t select 1.258
select case when cast(ID as float) > cast(ID as int) then cast(ID as float) 
            else cast(ID as int) end ID
from @t
/*
ID
----------------------
1
1.23
1.258

(3 個資料列受到影響)

*/