1

1)double d = 1.234567899;
この数値を小数点以下 8 桁の切り捨てなしの文字列に変換します。したがって、予想される出力は「1.23456789」で、最後の 9 を切り捨てます。

2)if d = 1.2345699;
そのため、ソリューションでは小数点以下 8 桁まで 0 を追加しないでください。予想される出力は "1.2345699" です。

私は多くの解決策を試しましたが、stringstream c++ クラスになりました。2番目の問題は解決しましたが、最初の問題はまだ残っています。

出力を達成する方法はありますか?

前もって感謝します。

4

3 に答える 3

0

最初に必要な小数点以下の桁数を 2 倍にすることでサービスを受けられますか? もしそうなら、http://www.cplusplus.com/forum/beginner/3600/を見てください

于 2013-09-20T09:51:35.747 に答える
0

必要に応じて正確に切り捨てます:

sprintf(str, "%1.10f", d);
memset(str+10, 0x00, 1);
于 2013-09-20T10:35:42.960 に答える