程序代码如下:
float fStart = 0.0f;
float fStep = 1.6f;
while (fStart < 10000.0f)
{
printf("%.4f\n", fStart);
fStart += fStep;
}
问题如下: 当fStart = 91.2时,执行下一句,fStart=92.7999,而不是92.8,请问是什么原因,如果fStep=1.5f,则程序不会出现偏差.我知道float是不准的,但也应该偏差如此之大,请问如果解决这个问题.当改成"%.5f",则在40左右就出现偏差.
float fStart = 0.0f;
float fStep = 1.6f;
while (fStart < 10000.0f)
{
printf("%.4f\n", fStart);
fStart += fStep;
}
问题如下: 当fStart = 91.2时,执行下一句,fStart=92.7999,而不是92.8,请问是什么原因,如果fStep=1.5f,则程序不会出现偏差.我知道float是不准的,但也应该偏差如此之大,请问如果解决这个问题.当改成"%.5f",则在40左右就出现偏差.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货