为什么很多(旧)程序都使用floor(0.5 +输入)而不是round(输入)?
差异在于返回值,我相信这种情况会给平局提供输入,例如以下代码: int main() { std::cout.precision(100); double input = std::nextafter(0.05, 0.0) / 0.1; double x1 = floor(0.5 + input); double x2 = round(input); std::cout << x1 << std::endl; std::cout << x2 << std::endl; } 输出: 1 0 但是最终它们只是不同的结果,一个选择了自己喜欢的一个。我看到许多使用floor(0.5 + input)而不是的“旧” C / C ++程序round(input)。 有什么历史原因吗?最便宜的CPU?