我知道浮动数据类型不能100%准确地表示。我在我的应用程序中更改为Currency数据类型。我的问题四舍五入。此代码重现了我的问题:
// uses Math;
var
Unrounded, Rounded: Currency;
begin
Unrounded := 6.765;
SetRoundMode(rmNearest);
Rounded := RoundTo(unRounded, -2); // was hoping to get 6.77
showmessage(CurrToStr(Rounded)); // returns 6.76
end;
我知道RoundTo函数使用Extended,那么舍入货币的正确方法是什么?
编辑:似乎我已经陷入银行家舍入方法^^。这就是为什么我得到6.76而不是6.77 ......有没有办法让“非银行家” - 周围?