KMo*_*Mot 5 c++ algorithm math mod
我有一个小函数来计算 mod 如下:
double mod(double a, double b){
return a-floor(a/b)*b;
}
Run Code Online (Sandbox Code Playgroud)
mod(1e15,3) 正确返回 1,但 mod(1e16,3) 由于乘法中的数值舍入错误而返回 0。但是使用 std::fmod(1e16,3) 可以正常工作并返回 1。有谁知道他们是如何避免这个问题的?