Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Округление вещественных чисел [D5, IB6.x]


Lika ©   (2004-10-15 16:53:00) 

Здравствуйте, подскажите пожалуйста округляю вещественное число до двух знаков Round(chislo*100)/100, округляет неправильно (в тысячных пятерка поэтому к сотым должна прибавляться 1, а она не прибавляется) Не знаю что мне делать, уже прочитала и кучу стотей про округление и алгоритмы другие попробовала,а оно не как. Подскажите пожалуйста как быть?


Nikolay M.   (2004-10-15 20:08:00) [1]


> const K10 : array [0..10] of Double = (1,10,100,1000,10000,100000,
>                                       1000000,10000000,100000000,
>                                       1000000000,10000000000);

Извращенец :)
10 shl k - попробуй, вставляет :)


LM2   (2004-10-15 17:39:00) [2]

function FormatFloat(var Value : Double; var K{кол-во знаков после запятой} : Integer): Double;
const K10 : array [0..10] of Double = (1,10,100,1000,10000,100000,
                                      1000000,10000000,100000000,
                                      1000000000,10000000000);
begin
  Result := ( Round ( Value * K10[K] + 1/K10[K+1] ) ) / K10[K];
end;


Johnmen   (2004-10-15 17:00:00) [3]

Читать про математическое и бухгалтерское округление.
PS 1.235 не так, как 1.245


Наверх

Титульная страница Поиск, карта сайта Написать письмо