看到一位網友的發貼 ,說在用水晶報表公式計算金額時出狀況了:
金額公式:round({buy.f_number_unit}*{buy.f_price_unit_c},2)
錯誤狀況:數量為970,單價為13.2635,正常的計算結果為12865.60,而水晶報表的結果卻為12865.59
偶用VS.NET2003自帶的水晶作測試,當用以下方法時可以免卻那一小竊:
1.直接在SQL中計算select ...,round(qty*price,2) as amt from table
2.轉換a.SQL中將單價由數值轉為字串select ...,concat(price,'') as price from table[注:偶是用mysql]
b.新增一單價公式:cdbl(val({命令.price}))
c.修正金額公式:round({qty}*{@price},2)
3.當金額公式改為:round({qty}*13.2635,2)
補記:2006.11.13
最近發現用VB在計算時用ROUND也會有誤,可採用如ROUND(數值+0.000000001,2)來排解