c/c++ 浅谈 float/double 浮点数怎么精确保留几位小数?

您所在的位置:网站首页 在c语言中怎么表示精确到小数点后六位 c/c++ 浅谈 float/double 浮点数怎么精确保留几位小数?

c/c++ 浅谈 float/double 浮点数怎么精确保留几位小数?

2024-07-08 08:32:58| 来源: 网络整理| 查看: 265

关于c/c++ 中 float 怎么转 int 大家都不陌生 那么一个 float/double 怎么精确保留几位小数怎么做到呢? 比如 3.1415926 ,转为 3.14 或者 3.1400000 ? 网上说的办法 类似如下 根本都无法做到想要的结果

在这里插入图片描述

在这里插入图片描述 当然了 通过stream 转为 string 的方式可行, 但是 你把string 转为float 一样还是会出现精度误差, 无法控制准确 在这里插入图片描述 即便std::string 是3.14 转为 float 也是 3.14000010 在这里插入图片描述 roundf 也是一样的结果 在这里插入图片描述 当时尝试了各种办法 无法解决这个问题 boost::multiprecision 库的有个办法可以 但是是内置类型转为原生float 一样是有误差 如果把 BigDecimal 转为float 还是有误差 这里就不说了 在这里插入图片描述

所以我了解了一下原理 得出结论 c/c++ 无法对浮点数精确表示所有实数!

在 C++ 中,浮点数类型(如 float 和 double)使用二进制浮点数表示法来存储和表示实数。这种表示法无法精确地表示所有的实数,尤其是十进制分数。

浮点数使用有限的比特数来表示小数部分,因此在进行浮点数计算时,可能会发生舍入误差。这意味着浮点数在进行运算或转换时可能会产生微小的误差。

例如,将 0.1 这个十进制分数表示为二进制浮点数时,会产生无限循环的二进制表示。然而,由于浮点数的存储精度是有限的,因此只能近似地表示这个分数。当您对这个近似值进行操作时,可能会出现舍入误差。

需要注意的是,对于打印输出的目的,可以使用格式化输出来控制浮点数的显示精度,但这并不改变浮点数本身的精度。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭