/**
* @brief 对value取decimal位小数,round为true表示要四舍五入
*/
double CutDouble(double value, int decimal, bool round)
{
if (round)
return ((double)((long long int)((value + 5 * pow(10, -(decimal + 1))) * pow(10, decimal)))) /
pow(10, decimal);
else
return ((double)((long long int)((value)*pow(10, decimal)))) / pow(10, decimal);
}
/**
* @brief 判断浮点数是否是有效值
*/
bool IsDoubleValid(double value)
{
if (!std::isnan(value) && std::isfinite(value))
return true;
else
return false;
}
/**
* @brief 断两个浮点数是否相等
*/
bool IsDoubleEqual(double v1, double v2) { return std::islessequal(v1, v2) && std::isgreaterequal(v1, v2); }
/**
* @brief 设置浮点数为无效值
*/
void SetDoubleInvalid(double &value) { value = NAN; }
c++操作浮点数
最新推荐文章于 2024-07-24 09:21:56 发布