私のプログラムでは、ダブルが精度を失っているという奇妙な動作がありました。私のcoutは正しい値を示していたが、依然として行動は予想外だった。したがって、私はデバッグし、発見さえgdbが予期しない値を表示します。続き は簡略化されたシナリオである:gdbが間違ったdouble値を表示しています
double length =2.11;
//gdb shows 2.10 here but prints 2.11 correctly using cout at the end
cout<<"length; //It prints 2.11 correctly here
は、多くの場合、そのような問題は、デバッグが可能な限り多くのプリントを使用しているオプションと唯一の選択肢ではありません生産シナリオに見つけるのは難しいです。 この問題を回避するにはどうすればよいですか?
間違った質問(あなたが動機づけを忘れて、実際にはいくつかの[XY問題](http://xyproblem.info)...)があるためです。あなたがコメントしたように、* numbers *を操作するのではなく、いくつかのバロックな長さ表現( '2.11'は2フィートと11インチを意味するとコメントしたので) –
' double'を使うと、http: //floating-point-gui.de/ –
@BasileStarynkevitch:絶対に良いアドバイス。この知識に武装して、あなたはまた、パーティーでうんざりします。 – Bathsheba