【发布时间】:2009-06-15 06:45:30
【问题描述】:
我使用以下代码舍入到 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。任何其他 (更优雅的)想法?
【问题讨论】: