Например, так:
double round(double x, double accuracy)
{
assert(accuracy > 0);
return floor(x / accuracy + 0.5) * accuracy;
}
Наверное Вы имели ввиду
C++ (Qt)
return floor(x * accuracy + 0.5) / accuracy;
}
Но все равно это не проходит (напр для x = -3.6).