float、double类型的转化和判断为零问题
1、将字符串转化为float、double
浮点数在内存中的存储机制和整形数据不同,有舍入误差,在计算机中用近似表示任意某个实数。具体来说,这个数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到。这种表示方法类似于基数为10的科学计数法。所以浮点数在运算过程中随着因为无法精确表示而进行近似或舍入。但是这种设计的好处是可以在固定的长度上存储更大范围的数。
转化过程存在精度损失,只是float、double各自损失的精度不相同而已
std::string str="8.2";float cc=atof(str.c_str()); //cc的值为8.1999998std::string str="8.2";double cc=atof(str.c_str()); //cc的值为8.1999999999999993
2.float、double判断是否等于0
float是32位,double是64位。float32位中,有1位符号位,8位指数位,23位尾数位。double64位中,1位符号位,11位指数位,52位尾数位。
一般float型只能精确到小数到后六位即1e-6,将float型的数a的绝对值abs(a)与1e-6比较,如果abs(a)比1e-6还要小的话就可以认为a的值为零,因为小数六位以后是不精确的,是没有意义的。
比如数0.0000001虽然确实不等于零,但是第七位小数1是没有意义的就可以认为这个数等于0。
float,double分别遵循R32-24,R64-53的标准。所以float的精度误差在1e-6;double精度误差在1e-15,所以要判断一个单精度浮点数:则是if( abs(f) <= 1e-6);要判断一个双精度浮点数:则是if( abs(f) <= 1e-15 );若小于,为0,大于,不为0 。
float a = 0;if(fabs(a) < 1e-6) {printf("%f\n",fabs(a));printf("float Equal 0!\n");}else{printf("%f\n",fabs(a));printf("float not Equal 0!\n");}double b = 0; if(fabs(b) < 1e-15){printf("%f\n",fabs(a));printf("double Equal 0!\n");}else{printf("%f\n",fabs(a));printf("double not Equal 0!\n");}
相关文章:
float、double类型的转化和判断为零问题
1、将字符串转化为float、double 浮点数在内存中的存储机制和整形数据不同,有舍入误差,在计算机中用近似表示任意某个实数。具体来说,这个数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2&…...
强大的虚拟机软件 VMware Fusion Pro 13中文最新 for mac
VMware Fusion Pro是一款虚拟化软件,它允许在Mac电脑上同时运行Windows和其他操作系统,而无需重启电脑,它采用了领先的虚拟化技术,能够保证在Mac电脑在同时运行多个操作系统时表现出极高的效率和稳定性。 VMware Fusion Pro具有以…...
SystemVerilog Assertions应用指南 Chapter1.37 使用局部变量的SVA
在序列或者属性的内部可以局部定义变量,而且可以对这种变量进行赋值。变量接着子序列放置,用逗号隔开。如果子序列匹配,那么变量赋值语句执行。每次序列被尝试匹配时,会产生变量的一个新的备份。 module cubed(enable1, a, aa, clk);input logic [7:0] a; input logic enable1,…...
Linux实现无需手动输入密码的自动化SSH身份验证
SSH密钥身份验证是一种安全的方式,使您能够在无需手动输入密码的情况下连接到远程服务器。以下是如何设置SSH密钥身份验证,以便您的脚本能够自动运行: 步骤 生成SSH密钥对: 在您的本地系统上生成SSH密钥对。如果您尚未生成,请使用…...
CSS 效果 圆形里一个文字居中
效果实现源码: 宽度,高度必须确认,且相等 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.circlew {width: 45px;height: 45p…...
排序算法,冒泡排序算法及优化,选择排序SelectionSort,快速排序(递归-分区)
一、冒泡排序算法: 介绍: 冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需…...
编写内联函数求解 2x²+4x+5的值,并用主函数调用该函数
动态内存分配可以根据实际需要在程序运行过程中动态地申请内存空间,这种内存空间的分配和释放是由程序员自己管理的,因此也被称为手动内存分配。 C++ 中,动态内存的分配和释放是通过 new 和 delete 操作符进行的。new 操作符用于在堆内存上为对象动态分配空间,dele…...
【Release】Photoshop ICO file format plug-in 3.0
【Introduction】 The Photoshop ICO plug-in is a file format plug-in developed for Photoshop, which allows Photoshop to directly read and write ICO format files. Because Photoshop has powerful pixel bitmap editing functions, it has many users and a good us…...
List.of() Vs Arrays.asList()
java中list.of和Arrays.asList方法有什么区别? 简介 Java 提供了几种用于创建列表的方便方法,包括 List.of 和 Arrays.aslist。尽管这两种方法都可以很简单的创建集合对象,但它们实际上是有一些显著差异的。本文将介绍 Java 中的 List.of()…...
机器学习-计算数据之间的距离
目录 欧氏距离 欧氏距离应用场景: 聚类分析:在聚类算法中(K-means)中,可以使用欧式距离来衡量数据点之间的相似性或距离,以便于将他们划分到不用的簇中。特征匹配:在计算机视觉和图像处理中,可以使用欧氏…...
Uniapp软件库源码 全新带勋章功能(包含前后端源码)
Uniapp软件库全新带勋章功能,搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名, 电脑需要下载:HBuilderX 登录账号 没有账号就注册账号,然后上传文件,打包选择 “发行” 可以打包app h5等等。…...
陪诊小程序|陪诊小程序关爱健康,无忧陪伴
随着社会发展和人们生活水平的提高,健康问题成为人们关注的焦点。然而,在就医过程中,许多患者常常感到孤独和无助,缺乏得到家人陪伴的温暖与安慰。为了解决这一问题,我们公司开发了一款创新的陪诊小程序软件࿰…...
uni-app小程序使用DCloud(插件市场)流程
一、DCloud(插件市场) DCloud 是uni-app官方插件市场,里面有官方、团队、个人发布的众多插件,包括uni-ui、uni-pay 等。而像uni-ui这种大型组件库都有官方文档可参考,但一些团队或个人发布的小型插件没有文档…...
非平稳信号分析和处理、STFT的瞬时频率研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
SIPp使用经验
xml文件,建议<?xml version"1.0" encoding"UTF-8" ?>,不建议ISO-8859-1命令行传key参数 sipp -key contact_port 9999 ...<send retrans"500"><![CDATA[REGISTER sip:[field1]:[remote_port] SIP/2.0Vi…...
ChessGPT:免费好用的国际象棋对弈AI机器人
对于国际象棋初学者,需要找一个对手来练棋。ChessGPT,就是一个免费好用的AI对弈机器人,非常适合新手来提升,是一个很好的练习伙伴。网站地址是:https://www.chess.com/play/computer,也有手机版app…...
华为OD 区间交集(200分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
Python算法:八大排序算法以及速度比较
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
半导体用超高纯管材行业头部企业市场占有率及排名调研报告
内容摘要 本文调研和分析全球半导体用超高纯管材发展现状及未来趋势,核心内容如下: (1)全球市场总体规模,分别按销量和按收入进行了统计分析,历史数据2018-2022年,预测数据2023至2029年。 &…...
Qt中的线程同步:确保多线程程序的安全性
在现代计算机编程中,多线程编程已经变得非常常见,因为它可以提高程序的性能和响应能力。然而,多线程编程也引入了许多挑战,其中一个主要挑战是线程同步。线程同步是确保多个线程协同工作时数据的安全性和一致性的关键问题。Qt作为一种流行的C++框架,提供了丰富的工具和类来…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果,如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
