I ended up with:
...
double factor = pow(10, numberFormatter.maximumFractionDigits);
price = round(price * factor) / factor;
if (fpclassify(price) == FP_ZERO)
{
price = fabs(price);
}
formattedString = [numberFormatter stringFromNumber:@(price)];
But I wonder if there's not a nicer/cleaner solution.