如何在C++中删除浮动剩余部分

Zac*_*Lee 0 c++ floating-point

我想在保留其类型的同时删除浮动剩余物.

(即3.14159f应该变成3.0f)

到目前为止,我能做的是两次铸造这种类型.

float f = 3.14159f;

float r = static_cast<float>(static_cast<int>(f));
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?或者有更简单的方法吗?

先感谢您.

das*_*ght 7

"删除剩余物"的操作称为截断.C++提供std::trunc了执行此操作的功能(包括<cmath>标头):

float r = std::trunc(f);
Run Code Online (Sandbox Code Playgroud)

  • @ZackLee这是你应该只担心性能*的一个例子*你证明`std :: trunc`对你的用例来说太慢了,只是为了正确使用if. (7认同)