我的问题的一个例子。
#include <stdio.h>
#include <math.h>
int main() {
long double mod = fmod(0.06, 0.02);
printf("%Le", mod); //prints 2.000000e-02 instead of 0.000000e+00.
long double mod1 = fmod(0.006, 0.002);
printf("%Le", mod1); //prints 0.000000e+00 correct.
return 0;
}
我如何解决问题而不是问题,我尝试使用fmodf()
和fmodl()
,但我对其他值有同样的问题。
我必须使用long double,所以有一些方法可以解决这个问题......