為什麼用ROUND四捨五入總是無法得到正確數值?

來源:互聯網
上載者:User

為什麼用ROUND四捨五入總是無法得到正確數值?
作者:cg1  摘自:access911.net
問題:


為什麼用ROUND四捨五入總是無法得到正確數值?
比如
round(11.115,2) 竟然會等於  1.11 而不是 1.12


又比如:我在Access查詢中寫了以下語句:
SELECT Round(0.005, 2) as ID;
結果不是我期望的0.01,而是0,如果想得到0.01,應該怎樣做?

 



回答:

原因很簡單,在進行精確計算時應該使用“貨幣”類型欄位而不是常用得“數字”“雙精確度”,應為雙精確度得儲存方式不是以十進位直接儲存,而是用科學計數法算出來的,總會產生誤差的。
如果你必須使用雙精確度,建議分開儲存小數位以及整數位。


關於在查詢中可以使用以下語句解決
SELECT Format(0.005, '#.##')  AS ID;




相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。