Округлення - тривіальна задача в математиці, але в Qt немає функції округлення до певного розряду. Проте в QtMath є такі функції як qFloor (qreal) і QCeil (qreal), в результаті яких int. А також можна використовуючи round (double), отримати double. Дуже швидко я знайшов ось цей ресурс звідки взяв вихідну формулу. Вона без сумніву працює, але дає результати, які не відповідаю моїм очікуванням: toRound(187.156, 2); //187.15 toRound(187.156, 1); //187.1 toRound(187.156, 0); //187 toRound(187.156, -1); //180 toRound(187.156, -2); //100 Після невеликої корекції самої функції, її підсумковий варіант виглядає так: double wcsv::toRound(double val, int r) { double outpValue; double tempVal; tempVal=val*pow(10,r); if (double(int(tempVal))+0.5==tempVal){ int(tempVal)%2 == 0 ? outpValue=double(qFloor(tempVal))/pow(10,r) :outpValue=double(qCeil(tempVal))/pow(10,r); } else { double(int(tempVal))+0.5>tempVal ? outpValue=double(qFloor(