小さな C++ の問題があります。まず第一に、「私の」言語は Java なので、C++ は初めてです。私はこの機能を持っています:
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 を返します。(両方の呼び出しで同じ double)
これがどのように起こっているのかよくわかりませんか?
.