Вы хотите округлить значение до , иначе называемое «потолком» результата. Просто «округление» числа всегда будет округлять вниз, если значение <.5, и наоборот. Вам также понадобится некоторая базовая c математика, чтобы указать число десятичных знаков, к которым нужно округлить. </p>
#include <QtMath>
double y = qCeil(0.0024 * 100.0) * 0.01; // y = 0.01
Или без Qt:
#include <cmath>
using std::ceil;
double y = ceil(0.0024 * 100.0) * 0.01; // y = 0.01
100.0
и 0.01
соответствует количеству десятичных разрядов, которое вы получите sh в итоге. Для одного десятичного знака это будет 10.0
/ 0.1
, или для трех 1000.0
/ .001
и т. Д.
Вы также можете просто разделить на последнем шаге на ту же сумму, которую вы умножили по. Умножение с плавающей запятой обычно намного быстрее, хотя, в случае, если это имеет значение.
ceil(0.0024 * 100.0) / 100.0;