我有一个类读取 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 以及如何解决?