у меня есть следующий код, чтобы закруглить валютномокругления валюты
function MyRound(value :currency) : integer;
begin
if value > 0 then
result := Trunc(value + 0.5)
else
result := Trunc(value - 0.5);
end;
он работал хорошо до сих пор, моя проблема теперь, если я хочу, чтобы округлить валюту как 999999989000,40 это дает отрицательное значение, так как Truc принимает int и MyRound также возвращает int.
Мои возможные решения - конвертировать валюту в строку и получить строку до . и конвертировать строку обратно в валюту. Правильно ли это? Я новичок в delpi, поэтому PLS мне помогает.
использовать int64 вместо целого? –
Решение, которое вы предлагаете, неверно и не будет работать, потому что ваша проблема связана с 32-разрядным переполнением. – kludg