C++ 判断 float 或 double 数据小数点后位数的方法
2023-12-30 18:26:55
Method 1
#include <cmath>
int countDecimalPlaces(double num)
{
if (num == 0) return 0; // 避免除以零错误
return std::floor(std::log10(std::abs(num - std::floor(num)))) + 1;
}
Method 2
#include <string>
#include <sstream>
int countDecimalPlaces(double num)
{
std::ostringstream oss;
oss << std::fixed << num; // 保留固定的小数位数
std::string str = oss.str();
return str.find('.') - str.find('e') > 0 ? str.find('.') + 1 : str.find('.');
}
Method 3
#include <cmath>
int countDecimalPlaces(double num)
{
if (num == 0) return 0; // 避免除以零错误
return std::abs(std::modf(num, nullptr)) == 0 ? 0 : std::floor(std::log10(std::abs(std::modf(num, nullptr)))) + 1;
}
文章来源:https://blog.csdn.net/guihunkun/article/details/135307923
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!