gpt4 book ai didi

C++ fabs(long double) 编译器警告

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:45 25 4
gpt4 key购买 nike

我想要一个 long double 的绝对值.

根据 <cmath><math.h> ,以下内容可用:

     double fabs (double x);
float fabs (float x);
long double fabs (long double x);

但是,当做 long double ld = fabs(static_cast<long double>(0)); ,我收到以下警告(LLVM 7.1):

Absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value

怎么会?

还有哪些其他方法可以获取 long double 的绝对值? ?

编辑:

std::abs最终完成了工作。然而,std::fabs没有。正如评论中所指出的,这可能是由于实现不一致所致。

最佳答案

根据cppreference http://en.cppreference.com/w/c/numeric/math/fabshttp://en.cppreference.com/w/cpp/numeric/math/fabs全局命名空间中 fabs 的 C 版本仅接受 double 参数,您需要使用 fabsl。但是,std::fabsstd::abs 应该为您提供适当的 long double 重载。

关于C++ fabs(long double) 编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com