|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Yuri Muhitov 2:5020/400 12 Nov 2002 11:21:27 To : Alex Kozhushko Subject : Re: округление дробной части -------------------------------------------------------------------------------- Приветствую всех! "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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577b96193c9.html, оценка из 5, голосов 10
|