我正在使用以下代码舍入到 2dp:
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。
我将尝试分两个阶段进行舍入——首先到 3dp,然后到 2dp。还有其他(更优雅)的想法吗?