【发布时间】:2020-02-25 07:58:33
【问题描述】:
我已经尝试过 std::round 但它并没有给我我想要的结果。所以我的问题是我有 C# 程序,我正在转换为 C++,我遇到了这个问题。 C# Math.round 和 C++ round 是不同的。所以这会导致错误的计算。 C#代码:
Console.WriteLine(Math.Round(0.850, 1));
输出:
0,8
C++ 代码:
std::cout << roundf(0.850f) << std::endl;
输出:
1
就像您看到的那样,它们是不同的。我该如何解决这个问题?
【问题讨论】:
-
在 C++ 中,函数
roundf()向零舍入。这与 C#Math.Round函数的作用完全不同。你不能仅仅因为它们的名字相似就假设不同编程语言中的两个函数做同样的事情。尝试阅读文档。