2017-07-05 9 views
0

std :: stodを使用してダブルに変換したい文字列があります。しかし、std :: stodの出力は私が期待するものではありません。たとえば、私の文字列が6.1の場合、std :: stodの出力は6.0999999999999996です。std :: stodは正確な数値を出力しません

std :: stodが6.1を返すか、6.099 ... 6を6.1に変換するために何かできることはありますか?

答えて

1

いいえ。 std::stoddoubleを返します。ほとんどの実装では、doubleは2進浮動小数点型です。

これは6.1の正確な表現ではありません。

6.1が必要な場合は、適切な倍率で整数型を使用するか、サードパーティライブラリの小数点型を使用することを検討してください。

Is floating point math broken?

関連する問題