C++ Windows 打印的替代品?

标签 c++ math math.h

Windows 中 C99 lrint 函数的正确替代方法是什么?

#define lrint(x) (floor(x+(x>0) ? 0.5 : -0.5)) 

/* and if fesetround(0) behavior is required*/

#define lrint(x) ((int)(x))  

这是正确的吗?

最佳答案

没有[简单]单一的lrint定义来执行C99标准定义的行为。这是因为 lrint 的行为是通过单独调用 fesetround 来控制的。 。相反,您应该使用具有保证语义的单独舍入函数来实现应用程序的所需行为。

关于C++ Windows 打印的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319494/

相关文章:

c++ - C++ 标准是否需要 `#include <math.h>` 来定义 `abs` 中的 `<cmath>` 重载?

c - 为什么 C 中同时存在 % 和 fmod()

c++ - 动态字符串数组 C++

c++ - 捕获窗口调整大小

c++ - 在此 C++ 代码段中,复制构造函数被调用了多少次?

java - 一个使用 Java 解决对数数学问题的程序

c++ - 用于初始化引用的指针引用的值

转换为碱基会得到相反的输出。如何在没有strrev的情况下使其正确?

python - 如何检测非方阵的所有行是否在python中正交

c - sqrt 仅在参数为非负时定义