問題:
而數據庫實際上寫入的數據分別為:
問題分析:
不管是總匯總數據還是條目匯總數據都是根據,每一條出庫數據,是以單價為組,單價*總面積的和得到每條細目的價格或者是總價格。在SQL處理的過程中計算截取了兩位,造成了有些數據直接截掉,沒有按照四舍五入的規則,出現了0.01的誤差。SQL計算默認保留精度。
知識補充:
處理數據的時候要經常用到四舍五入問題,這里記錄一下剛從網上搜到的方法
1. ROUND(該函數,只是負責四舍五入到兩位小數,但是不負責截斷 只留兩位小數,例如下例:)
關於ROUND函數,我們平常理解為4舍5入,如:
print ROUND(13.145, 2);
結果為:13.150
2. 使用轉換類型,才能達到保留兩位小數位的目的:
select cast(13.145 as decimal(10, 2))
結果為:13.15