double
の値をUNIXのsprintf()
を使用して文字列に変換する際に、特定の問題が1つあります。sprintf double値の書式設定
double a = 0.009984354523452;
double b = 0.01;
変換しながら、私が使用しています:
sprintf(somestringvar, "Double value : %.15f \n", a);
sprintf(diffstringvar, "Double value : %.15f \n", b);
は、文字列に変換する
例えば私は2つの値を持っています。
私の問題は 'a'ですが、値が適切に印刷されていますが、 'b'の値は0が末尾に追加されています。 「a」と「b」を正確な値として表現する一般的な方法を教えてください。
私はこの種のもののためにstd :: ostringstreamを使います。 – Robinson
一般に、 'sprintf()'はバッファオーバーランにつながる可能性があるため、使用しないでください。代わりに 'snprintf()'を使うか、MicrosoftがWindows上で提供する '_s'"安全な "バージョンの1つを使用してください。 p.s.スタックオーバーフローへようこそ! –
早期返答いただきありがとうございます。 ostringstreamは完全な精度を取っていません。値は0.009976としてのみ印刷されます。私はsnprintf()を使うことができますが、問題は値を適切に印字することです。 – sandy