我想就如何优化以下 while 循环提出一些建议:
double minor_interval = 0.1;
double major_interval = 1.0;
double start = 0.0;
double finish = 10.0;
printf("Start\r\n");
while (start < finish)
{
printf("Minor interval: %.20f\r\n", start);
double m = fmod(start, major_interval);
printf("m: %.20f\r\n", m);
if (m == 0)
printf("At major interval: %.20f\r\n", start);
start += minor_interval;
}
printf("Finished\r\n");
本质上,我将循环中的计数器增加了次要间隔,并且想知道每次循环中我是否处于主要间隔。把它想象成画一个以毫米为间隔的尺子,每次我到达一个主要的间隔时,我都想画一个厘米。考虑到浮点运算的不准确性,如何修改上述循环以实现我需要的功能?我尝试了不同的方法来比较模数的结果,但没有运气。请注意,次要和主要间隔可以是任何值,即次要 = 0.4 和主要 = 1.6(绘制四分之一英里增量)。
提前致谢。