
29.03.2009, 12:35
|
 |
Активный
|
|
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
|
|
Взято с decoding.narod.ru:
Код:
Как правильно округлять дробные числа?
// Precision = 1 - округлить до целых
// Precision = 10 - округлить до десятых
// Precision = 100 - округлить до сотых, и т.д.
function RoundEx( X: Double; Precision: Integer ): Double;
var
ScaledFractPart, Temp: Double;
begin
ScaledFractPart := Frac( X ) * Precision;
Temp := Frac( ScaledFractPart );
ScaledFractPart := Int( ScaledFractPart );
if Temp >= 0.5 then ScaledFractPart := ScaledFractPart + 1;
if Temp <= -0.5 then ScaledFractPart := ScaledFractPart - 1;
RoundEx := Int( X ) + ScaledFractPart / Precision;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
|