C++ 判断 float 或 double 数据小数点后位数的方法

文章目录

    • Method 1
    • Method 2
    • Method 3

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;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/585954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GBASE南大通用-小内存单机安装GBase 8c分布式数据库实践

* 这种小内存部署方式仅用于分布式数据库个人学习使用&#xff0c;不建议用于其他用途。 随着数据高并发复杂场景业务需求不断增多&#xff0c;信息数据呈现出爆炸式增长、多源多维、数据类型繁复等特征。在这一趋势下&#xff0c;目前分布式数据库因其架构的天然优势&#xf…

Creo各版本安装指南

下载链接 https://pan.baidu.com/s/1VyP0_185mJeBiorlpUJqrQ?pwd0531 1.鼠标右击【Creo10.0(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Creo10.0(64bit)】。 ​2.打开解压后的文件夹&#xff0c;鼠标右击【Crack】选择【解压到…

mysql 数据查重与查重分页

起因是公司的crm录入不规范,有重复数据。 之后考虑到需要手动处理,首先需要自动找出重复的数据 查重要求: 存在多个不允许重复的字段,任一字段重复,则判断为同一个客户。划分到同一重复组中。 查重sql如下 SELECT CONCAT(组, dense_rank() OVER (ORDER BY group_key)) …

Winform RDLC报表(数据库连接、报表函数使用、动态表头)

文章目录 NuGet安装库数据库连接报表设计报表引用添加报表 数据集设计方法一手动添加方法二——连接数据库添加 关联报表与数据集表格数据与数据集数据设计表格格式、字体设计报表数据字段绑定 Winform 使用报表控件数据库填充数据集从数据库获取与数据源相同字段的数据 动态表…

数据库一般会采取什么样的优化方法?

数据库一般会采取什么样的优化方法&#xff1f; 1、选取适合的字段属性 为了获取更好的性能&#xff0c;可以将表中的字段宽度设得尽可能小。 尽量把字段设置成not null 执行查询的时候&#xff0c;数据库不用去比较null值。 对某些省份或者性别字段&#xff0c;将他们定义为e…

【并发】AtomicInteger很安全

AtomicInteger 简介与常规用法 AtomicInteger 是 Java 中 java.util.concurrent.atomic 包下的一个类。用于实现原子操作的整数。它是一个基于CAS&#xff08;Compare-And-Swap&#xff09;实现的原子整数类。它提供了一系列的原子操作&#xff0c;确保对整数的操作是原子性的&…

JavaScript(ES6)数据结构与算法之树

6. 树 文章目录 6. 树6.1 概念6.2 二叉树6.3 二叉搜索树概念代码实现插入遍历获取最值搜索删除节点 6.4 红黑树红黑树概念红黑树规则平衡原理 6.1 概念 非线性结构 n(n>0)个节点构成的有限集合&#xff0c;n0时称为空树 对于任一非空树 有一个根节点其余节点可以构成子树 …

python 中断点调试 pdb 包的介绍及使用

pdb 的简介 pdb&#xff08;python debugger&#xff09; 是 python 中的一个命令行调试包&#xff0c;为 python 程序提供了一种交互的源代码调试功能&#xff0c;其官方使用文档链接为 pdb — Python 的调试器。 pdb 的主要功能包括设置断点、单步调试、进入函数调试、查看当…

Django、Python版本升级问题大汇总

Django3.0升级到4.1,Python3.8升级到3.11.6问题大汇总 报错1:ERROR: Could not build wheels for cffi, uWSGI, which is required to install pyproject.toml-based projects ERROR: Could not build wheels for cffi, uWSGI, which is required to install pyproject.tom…

golang 图片加水印,字体文件从哪里找

鼠标左键双击此电脑图标在此电脑文本框输入电脑默认字体地址&#xff1a;C:\Windows\Fonts找到需要用到的字体文件&#xff0c;复制到指定文件夹

python企业车辆车货信息平台 s05fw

车货信息平台系统可具体分为货源方、平台方、承运方三部分。其中前端要求包含货源方&#xff1a;发布货源信息、选择承运方、司机服务评价&#xff1b;平台方&#xff1a;账户管理、货主、司机资质审核、聊天功能&#xff1b;承运方&#xff1a;车辆信息上传、个人车主发布车源…

Ubuntu Desktop 死机处理

Ubuntu Desktop 死机处理 当 Ubuntu Desktop 死机时&#xff0c;除了长按电源键重启&#xff0c;还可以使用如下两种方式处理。 方式1&#xff1a;ctrlaltFn 使用 ctrl alt F3~F6: 切换到其他 tty 命令行。 执行 top 命令查看资源占用最多的进程&#xff0c;然后使用 kill…

HEX报文协议打包生成工具

本工具可以用于灵活定制各种格式的报文。以下是定制报文中每个字段的说明&#xff1a; isbig&#xff1a;指示报文中的字节顺序是否为大端序&#xff08;Big Endian&#xff09;。如果为true&#xff0c;则表示使用大端序&#xff1b;如果为false&#xff0c;则表示使用小端序…

centrifuge5.0.1版本请求websocket实例

目录 一、安转 二、快速开始 三、实例开始 centrifuge提供了一个客户端&#xff0c;可使用纯 WebSocket 或一种替代传输&#xff08;HTTP 流、SSE/EventSource、实验性 WebTransport&#xff09;从 Web 浏览器、ReactNative 或 NodeJS 环境连接到Centrifugo或任何基于 Cent…

WorkPlus局域网即时通讯软件的领航者,连接高效协作的利器

在快速发展的商业环境中&#xff0c;高效的内部沟通和协作对于企业的成功至关重要。而局域网即时通讯软件则成为实现内部高效沟通的必备工具。作为一款领航者级别的局域网即时通讯软件&#xff0c;WorkPlus通过卓越的性能和创新的技术&#xff0c;成为了众多企业的首选之一。 W…

ggplot2 | line plot 分组及均值线:聚类后的表达变化趋势图

1. 效果图 2. 预处理及绘图 # 输入数据 > head(dat)Species cid variable value 1 setosa 1 Sepal.Length 5.1 2 setosa 2 Sepal.Length 4.9 3 setosa 3 Sepal.Length 4.7 4 setosa 4 Sepal.Length 4.6 5 setosa 5 Sepal.Length 5.0 6 setos…

selenium模块有哪些用途?

Selenium模块是一个用于Web应用程序测试的模块&#xff0c;具有多种示例用法。以下是一些示例&#xff1a; 1.打开网页并执行一些基本操作&#xff0c;如点击按钮、输入文本等。 定位网页元素并执行操作&#xff0c;例如使用 find_element 方法查找单个元素&#xff0c;使用 f…

2023第三届中国高校大数据挑战赛B题代码

任务已完成&#xff0c;聚类效果很好&#xff08;主要在于数据的处理以及特征工程&#xff09;, 需代码si&#xff0c;yuer有限先到先得。

Git 使用规范:起名字、提交描述的最佳实践

1. 推荐写法&#xff08;本人常用&#xff09; Git 仓库命令规则&#xff1a; 前端&#xff1a;系统名-简单描述-front后端&#xff1a;系统名-简单描述-server Git 提交描述&#xff1a; docs(changelog): update change log to beta.5其中&#xff1a; ● docs 则对应修改…

深度学习 | 基本循环神经网络

1、序列建模 1.1、序列数据 序列数据 —— 时间 不同时间上收集到的数据&#xff0c;描述现象随时间变化的情况。 序列数据 —— 文本 由一串有序的文本组成的序列&#xff0c;需要进行分词。 序列数据 —— 图像 有序图像组成的序列&#xff0c;后一帧图像可能会受前一帧的影响…