請先看代碼:
- 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 这种状况