Russian Qt Forum
Май 20, 2024, 23:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Округление double  (Прочитано 17358 раз)
daimon
Гость
« : Ноябрь 18, 2009, 01:11 »

Может посоветовать функцию STL для округления числа типа double с заданной точностью.
Записан
vregess
Гость
« Ответ #1 : Ноябрь 18, 2009, 11:08 »

Посмотри тут: http://www.cplusplus.com/forum/articles/3638/

Может поможет.

PS. В STL таких функций нет вроде.
Записан
ax
Чайник
*
Offline Offline

Сообщений: 60


Просмотр профиля
« Ответ #2 : Ноябрь 18, 2009, 11:35 »

для double пользую ф-ию

Код:
#include <math.h>
double roundDouble(double doValue, int nPrecision)
{
    static const double doBase = 10.0;
    double doComplete5, doComplete5i;

    doComplete5 = doValue * pow(doBase, (double) (nPrecision + 1));

    if (doValue < 0.0)
        doComplete5 -= 5.0;
    else
        doComplete5 += 5.0;

    doComplete5 /= doBase;
    modf(doComplete5, &doComplete5i);

    return doComplete5i / pow(doBase, (double) nPrecision);
}
Записан
simark1979
Гость
« Ответ #3 : Март 13, 2010, 00:34 »

Спасибо, попробую!
Записан
Astrologer
Гость
« Ответ #4 : Сентябрь 17, 2010, 21:51 »

Если привязка к сетке с заданной точностью, то
Код:
double roundTo(double value, double base)
{
return floor((value + base / 2) / base) * base;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.075 секунд. Запросов: 19.