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として保存されるため、これが起こっていることに気付きました。
最初に 3 dp に、次に 2 dp に、2 段階で丸めます。他の(よりエレガントな)アイデアはありますか?