查看 GNU 提供的舍入函数集,我无法准确找到我要查找的内容。
根据 GNU 文档,
rint()
小伙伴们会根据当前的舍入模式舍入为整数,默认为舍入到最接近的整数。
这主要是我想要的,但它似乎是无限模型的一半。 那就是
llround ( 1.500000 == 2), want 1
llround (-1.500000 == -2), want -1
llrint ( 1.500000 == 2), want 1
llrint (-1.500000 == -2), want -1
round()
和朋友的文档指出:
这些函数与 rint 类似,但它们将中间情况舍入到远离零的位置,而不是舍入到最接近的整数(或其他当前舍入模式)。
我无法确定任何使用默认舍入模式的函数,但具有 接近零 语义
具体来说,我想要
有这样的存在吗?
与此同时,我采取了以下方法。 我对此不是很热衷,但它可以满足我有限的用例
(float_val > 0) ? llrint(float_val - __FLT_EPSILON__) : llrint(float_val + __FLT_EPSILON__)