Tlik |
Отправлено: 19.02.2004, 16:36 |
|
Не зарегистрирован
|
Нашел в форумах вот такой пример, но не понял его;
TForm::Okrugl1(double Argument, int Precision)
{
double div = 1.0;
if(Precision>= 0)
while(Precision--)
div *= 10.0;
else
while(Precision++)
div /= 10.0;
return floor(Argument * div + 0.5) / div;
}
Скажем мне нужно округлить число 768492119
Мне нужно передат его в функцию, так:
Okrugl1(768492119, 2);
Я правильно понял??
P.S.
В математике я вообще глупый, скажите это будет работать грамотно. |
|
** pasha |
Отправлено: 19.02.2004, 16:45 |
|
Не зарегистрирован
|
QUOTE | Я правильно понял?? |
Да. |
|
Asher |
Отправлено: 19.02.2004, 17:52 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет
Запусти проверь.
Судя по всему в этой функции для округления цифр после запятой используется Precision> 0, если ты из 768492119 хочешь получить 768492100, то Precision = -2.
|
|
Doga |
Отправлено: 20.02.2004, 15:26 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
А что, моя double Round(double Value, int Precision) не понравилась?
|
|
Tlik |
Отправлено: 21.02.2004, 17:27 |
|
Не зарегистрирован
|
QUOTE | Doga
А что, моя double Round(double Value, int Precision) не понравилась? |
Просто я непонял как оформить код в программе. Чтот много кода, я не разобрался что к чему(.
Это всё одна функция, и мне только нужно передать ей значения и получить округленную сумму?
Пока, просто нет времени попробывать, поэтому не эксперементировал еще)
|
|
Doga |
Отправлено: 24.02.2004, 15:07 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Именно так!
|
|