Специальной функции c для этого не существует, но вы можете легко ее создать. Просто разделите значение на 1,75, затем вызовите std::round
, а затем умножьте на 1,75.
например,
double round_to_multiple(double val, double step)
{
return step * std::round(val / step);
}
Где "step" - размер шага, или несколько. В вашем случае 1.75.
Просто будьте осторожны с ошибкой округления с плавающей точкой. Если вы всегда имеете дело с двумя десятичными разрядами и числа, с которыми вы работаете, находятся в полезном диапазоне, вы можете рассмотреть возможность использования вместо них целых чисел (умноженных на 100), что немного изменит технику.