Re[6]: RoundTo
От: mlecter  
Дата: 15.09.04 15:53
Оценка:
Здравствуйте, AMogil, Вы писали:


AM>>Пример из справки Delphi


AM>>Expression Value


AM>>SimpleRoundTo(1234567, 3) 1234000

AM>>SimpleRoundTo(1.234, -2) 1.23 !!!!!!!
AM>>SimpleRoundTo(1.235, -2) 1.24
AM>>SimpleRoundTo(-1.235, -2) -1.23

AM>>И техт:


AM>>SimpleRoundTo uses asymmetric arithmetic rounding to determine how to round values that are exactly midway between the two values that have the desired number of significant digits. This method always rounds to the larger value.


AM>Попробуйте


AM>SetRoundMode(rmDown);


Спасибо, заработало
Хотя странно, SimpleRoundTo вроде не должен использовать RoundMode


function SimpleRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double;
var
  LFactor: Double;
begin
  LFactor := IntPower(10, ADigit);
  Result := Trunc((AValue / LFactor) + 0.5) * LFactor;
end;


В чем причина?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.