/**
* @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; }
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交