我有以下代碼圓貨幣四捨五入貨幣
function MyRound(value :currency) : integer;
begin
if value > 0 then
result := Trunc(value + 0.5)
else
result := Trunc(value - 0.5);
end;
它運作良好,到目前爲止,我現在的問題是,如果我想圓一個貨幣一樣999999989000.40因爲特呂克它給負值需要int並且MyRound也返回int。
我可能的解決方案是將貨幣轉換爲字符串並獲得之前的字符串。並將字符串轉換回貨幣。這是一個正確的方法嗎?我對delpi很陌生,所以請幫助我。
使用int64而不是整數? – 2013-02-22 12:25:16
您建議的解決方案是錯誤的,並且不會工作,因爲您的問題是32位溢出 – kludg 2013-02-22 12:41:20