Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的fmod()功能有问题。
fmod()
这段代码应该是真的,但不知何故不是。有什么帮助吗?
if (fmod(1.9, 0.3) == 0.1) { cout << "True." << endl; }
浮点数不准确。你可以这样做的一种方法是,
#include <limits> if (fabs(fmod(1.9,0.3) - 0.1) < std::numeric_limits<double>::epsilon()) { cout << "True." << endl; }
但是,这是一个粗略的解决方案,并不完全正确。搜索一下如何在 stackoverflow 上比较双精度/浮点数,以讨论该问题。