0
我有一個小的C++問題。首先,「我的」語言是Java,所以我是C++的新手。 我有這個功能:C++函數調用順序(boost) - 困惑
double readableDouble(double input)
{
return (int)(input*100+0.5)/100.0;
}
正如你所看到的,沒有什麼特別的。現在我從另一個函數(在同一個類中)調用函數:
cout << readableDouble(4434.21121131234323243) <<endl; // result: 4434.22 all okay
cout << readableDouble(tempTrack.getLenght()/1000.0); // result: 30.56 all okay
string lenght = boost::lexical_cast<string>(readableDouble((tempTrack.getLenght()/1000.0))); // result 30.55999999999982. expected: 30.56
getLenght()返回一個double。 (兩個電話相同)
我不太確定這是怎麼發生的?
。
你期望的輸出? – 2013-02-09 15:47:46
哦,應該是30.56。 – Mirco 2013-02-09 15:48:24
也許你會發現[this](http://floating-point-gui.de/)有用 – 2013-02-09 15:48:58