我的程序中有一個奇怪的行爲,其中雙精度失去了精度。我的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)...)。正如你所評論的那樣,你不會操縱*數字*,而是一些巴洛克長度表示(因爲你評論說'2.11'意思是2英尺和11英寸) –
如果你使用'double',一定要花幾個小時才能讀取http: //floating-point-gui.de/ –
@BasileStarynkevitch:絕對好的建議。掌握了這些知識後,你們也會在派對上喋喋不休。 – Bathsheba