这些差异存在于返回的值中,我认为这些返回值给出了关于打破平局的输入,例如 这个密码:
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
但它们最终只是不同的结果,一个人选择自己喜欢的结果。我看到很多“旧”的 C/C + + 程序使用 floor(0.5 + input)
而不是 round(input)
。
有什么历史原因吗? CPU 最便宜?