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

關於Cast()函數
請先看代碼:
SQL code

select 25*1.00,cast(25 as decimal(30,2)),25*1.00/6,cast(25 as decimal(30,2))/6

---------- -------------------------------- ------------ --------------------- 
--25.00    25.00                            4.166666     4.166666

--(影響 1 個資料列)


請問:Cast(XX as decimal(30,2))和X*1.00有本質區別嗎?
從上面的代碼和結果好像看不出什麽區別。
再問:二者執行效率有區別嗎(一個用乘法,一個用函數)?
這個是我最關心的。

------解决方案--------------------
没有本质区别,就是X*1.00的效率要高些。
而且一般的都用X*1.00来实现小数化问题。
------解决方案--------------------
X*1.00是为了获取小数.
不然,25/6 = 4
------解决方案--------------------
应该是精度问题吧!  decimal 是最准确的 例如不会出现 3.1 变为 3.09999999999 这种状况