gpt4 book ai didi

c++舍入 float 以设置精度

转载 作者:搜寻专家 更新时间:2023-10-30 23:50:18 25 4
gpt4 key购买 nike

我希望对 float 进行舍入以设置精度并从函数返回结果。比如我目前有以下功能:

inline bool R3Point::
operator==(const R3Point& point) const
{
// Return whether point is equal
return ((v[0] == point.v[0]) && (v[1] == point.v[1]) && (v[2] == point.v[2]));
}

我想做的不是直接进行 v[i] == point.v[i] 比较,我希望只将数字与某个设定精度进行比较,这样如果v[i] = 0.33349999999999996point.v[i] = 0.33350000000000002,我的相等比较结果为 TRUE。

我知道有一个 c++ smanip setprecision ( int n ); 函数,我已经看到它在使用 cout 在屏幕上显示输出时经常使用。但是,我不确定这是否可以像我描述的那样在函数中使用。

谢谢。

最佳答案

一般来说,== 不应该用来比较 double ,你应该这样做:

if(v[0] - point.v[0] < 1e-9) { }

如果您不确定符号并相应地更改精度 1e-9,您可以使用 absfabs

关于c++舍入 float 以设置精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351823/

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