Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

Оцените код $-))   Найти похожие ветки 

 
MikhailV   (2006-09-18 14:15) [0]


//-----------------------------------------------------------------------------
function KRound(Source: Extended; Precision: Integer): Extended;
//            1. Исправлена ошибка округления отрицательных чисел
//            2. Повышена точность округления - раньше можно было
//               округлять не более чем до 5-го знака (реально до 4-го),
//               теперь - до 9-го
var StrNumber, StrDelta: string;
   RoundPos, ErrCode: Integer;
   CompValue, Delta, Sign: Extended;
begin
 Str(Source:35:10, StrNumber);  // 11.04.2003 увеличение точности
 RoundPos:=Pos(".", StrNumber)+Precision;
 {11.04.2003 определяем знак округляемого числа}
 if (Pos("-", StrNumber) > 0) then
   Sign := -1
 else
   Sign := 1;
 {}
 if Precision > 0 then RoundPos:=RoundPos-1;
 if (Precision = 0) then
   StrDelta:="."+Copy("0000000000000000000000", 1, Precision)+  //22 нуля - mv
                 Copy(StrNumber, RoundPos+1, Length(StrNumber))
 else
   if (Precision > 0) then
     StrDelta:="."+Copy("0000000000000000000000", 1, Precision)+
                   Copy(StrNumber, RoundPos+2, Length(StrNumber))
   else
     if (Precision < 0) then
       StrDelta:=Copy(StrNumber, RoundPos, Length(StrNumber));
 Val(StrDelta, Delta, ErrCode);
 CompValue:=1/(Power(10, Precision))/2;
 {11.04.2003 "Дельта" должна иметь тот же знак, что и округляемое число}
 if Delta < CompValue then
   Result := Source - Delta*Sign
 else
   Result := Source - Delta*Sign + CompValue*2*Sign;
end;


 
Anatoly Podgoretsky ©   (2006-09-18 14:56) [1]

Ну оценил.


 
MikhailV   (2006-09-18 15:07) [2]

Увидел - обомлел, не мог не поделиться. Это коммерческий продукт!


 
Anatoly Podgoretsky ©   (2006-09-18 15:09) [3]

А я думал, ты цену хочешь узнать, а ты радостью делишься.


 
MikhailV   (2006-09-18 15:14) [4]

Да, низковато, но радует ;)


 
Рамиль ©   (2006-09-18 15:14) [5]

А я думал мне платить будут за каждое использование этого кода.


 
MikhailV   (2006-09-18 15:21) [6]

Мы платим...


 
TUser ©   (2006-09-18 15:40) [7]

IncDay


 
sniknik ©   (2006-09-18 15:45) [8]

> Мы платим...
за каждый добавленный знак при повышении точности округления? круто.


 
MikhailV   (2006-09-18 15:56) [9]


> TUser ©   (18.09.06 15:40) [7]
> IncDay

Да было что-то вроде. Сходу только :
//    Функция FindBirstDay ищет день рождения по возрасту на заданную дату
//    Возвращает дату рождения.
//    Параметры:
// 1) InCurDate - дата, на которую рассчитан возраст (в день рождения 0,0,0);
// 2) InYear    - кол-во полных лет на InCurDate;
// 3) InMonth   - кол-во полных месяцев на InCurDate;
// 4) InDay     - кол-во полных дней на InCurDate.


 
Игорь Шевченко ©   (2006-09-18 16:21) [10]


> Оцените код $


$-100


 
MikhailV   (2006-09-18 16:23) [11]

> $10000...



Страницы: 1 вся ветка

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
15-1158557709
Ega23
2006-09-18 09:35
2006.10.08
С Днём рождения! 16 сентября


3-1154497168
Alex35
2006-08-02 09:39
2006.10.08
Пример работы с DTS на Delphi


15-1158072079
zdm
2006-09-12 18:41
2006.10.08
Borland Developer Studio 2006


15-1158390100
Новичоккк
2006-09-16 11:01
2006.10.08
Ищу компонент для Delphi


15-1158519090
ProgRAMmer Dimonych
2006-09-17 22:51
2006.10.08
Расскажите, как разместить свою веб-страницу в интернете, ...