小数点以下 2 桁以下の数値レコードを含む csv ファイルを読み取るクラスがあります。
int ReadCellWithFloat(int cellNumber, int multiplier) throw (FSByFieldException)
{
GoToCell( cellNumber );
float number;
FileStream >> number;
std::cout << "what we've got: " << number;
if ( !FileStream.good() )
{
throw BuildException( FSByFieldException::NOT_FLOAT );
}
while ( multiplier-- )
{
number *= 10;
}
std::cout << ' ' << number << ' ' << (int) number << std::endl;
PassCell(); // here meaning pass comma separator
return (int) number;
}
float "8.49" を含むセルの場合、出力は次のようになります。
what we've got: 8.49 849 848
整数へのキャストで 849 が 848 になるのはなぜですか? それを修正する方法は?