浮点数精度的小问题
我现在要接收一些小数,截取到小数点后N位并转换成一个整数。
随便设了几个数做测试,发现有时输出的数值偏小。
如:
for(int i=0;i<5;i++)
{
//sends.Add(CSendData(i*102.03f,2));
float fValue = (i*102.03f);
CString str;
str.Format("%f", fValue);
::AfxMessageBox(str);
}
第2个数输出 102.029999 这样的。
后面的转换:
int nValue = int (fValue * pow(10.0f,nDot));
然后输出 10202 这样的数(我想得到10203)
请问如何才能得到比较准确的整数?