Re: округление дробной части
- From
- Yuri Muhitov ()
- To
- Alex Kozhushko
- Date
- 2002-11-12T10:21:27Z
- Area
- RU.ALGORITHMS
From: "Yuri Muhitov" <muhitov@bercut.ru>
Приветствую всех!
"Alex Kozhushko" <alxrie@sibmail.ru> wrote in message
news:aqq919$5nv$1@ddt.demos.su...
> Добрый день, Юрий!
>
> "Yuri Muhitov" <muhitov@bercut.ru> wrote in message
> news:aqq7rh$30u7$1@ddt.demos.su...
>
> YM> У кого найдется более ( интересная | эффективная | простая )
реализация
> YM> округления дробной части до n знаков после десятичной точки ?
>
> YM> #include <math.h>
> YM> /* округляет val до fract знаков после запятой */
> YM> double round ( double val, int fract )
> YM> {
> YM> double fact = pow ( 10.0, fract );
> YM> return ( double )( int )( val * fact + 0.5 ) / fact;
> YM> }
>
> Функция pow смущает. Реализована она через экспоненту - а это не слишком
> быстро.
> fract вряд ли больше 20 (для 64-битного вещественного). Возвести 10 в
целую
> степень можно за O(log fract) умножений - то есть в данном случае не более
> чем за 5 умножений (причем целочисленных).
OK !! Please, примерчик возведения :)
С уважением, Юрий.
--- ifmail v.2.15dev5
* Origin: BERCUT (2:5020/400)