我正在使用以下代码将数字保留两位小数:
sprintf(temp,"%.2f",coef[i]); //coef[i] returns a double
它成功将6.666四舍五入为6.67,但在将5.555四舍五入时却无法正常工作。它返回了5.55,然而我认为应该返回5.56。
如何使它在下一位数字为5时向上舍入?即返回5.56。
编辑:我现在意识到这是因为当我用cin输入5.555时,它被保存为5.554999997。
我将尝试分两个阶段进行舍入-先进行三位小数的四舍五入,然后再进行两位小数的四舍五入。还有其他(更优雅的)想法吗?