singlepost

С++ округление с заданной точностью << На главную или назад  

Ребят, как в С++ округлить число (double) с заданной точность? Причём точность задана не в количестве знаков после запятой, а как вещественное число.

т.е. точность может быть:
0.1
0.25
0.5
0.01

и др.

66 ответов в теме “С++ округление с заданной точностью”

  1. 1
    Пашка Джиоев ответил:

    Что-то вроде:

    double round( double val, double prec)
    {
    int sign = (val > 0) ? 1 : -1;
    val *= sign;
    return ((long long)((val/prec) + 0.5))*prec*sign;
    }

  2. 2
    Пашка Джиоев ответил:

    Даже лучше так:

    inline
    double round( double val, double prec)
    {
    return ((long long)((val/prec) + ((val > 0) ? 0.5 : -0.5)))*prec;
    }

  3. 3
    Александр Васюченко ответил:

    Пашка ت Джиоев, спасибо большое.

  4. 4
    Александр Васюченко ответил:

    а чем эти две функции отличаются?

  5. 5
    Пашка Джиоев ответил:

    В первой два лишних умножения, и одно преобразование int->double. Т.е. вторая быстрее, и скорее всего заинлайнится к тому же. А результат одинаковый у них.

  6. 6
    Александр Васюченко ответил:

    Пасибо.

  7. 7
    toddler and child sun hats ответил:

    toddler and child sun hats…

    new era mens nfl on field sport knit beanie houston texanswhite swim hat for babies and toddlers with sun protection gender neutralbarbour beacon mens gully navy waterproof bucket hatfashion toddler newborn baby kids boy striped beret hat peaked cabbie…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.