C++数据精度问题(对浮点数保存指定位小数)

发布时间 - 2026-01-11 02:46:02    点击率:

1、背景
对浮点数保存指定位小数。比如, 1.123456. 要保存1位小数,,调用方法后, 保存的结果为: 1.1。 再比如,1.98765, 保存2位小数的结果为: 2.00.

2、 解决方案
A、添加头文件

#include <sstream> 
#include <iomanip> 

B、添加命名空间

using namespace std; 

C、添加函数

/* 函数名:round 
/* 函数功能:数据精度计算函数 
/* 函数参数:float src:待求精度数   int bits:精度(0表示保留小数点后0位小数,1表示保留1位小数,2:表示保留2位小数) 
/* 函数返回值:精度求取结果 
/* Author: Lee 
/************************************************************************/ 
float round(float src, int bits); 

函数实现

float CDemo1Dlg::round(float src, int bits) 
{ 
  stringstream ss; 
  ss << fixed << setprecision(bits) << f; 
  ss >> f; 
 
  return f; 
 
} 

D、调用方式

CString str2 = L"99.054"; 
float f2 = (float)_wtof(str2); 
f2 *= 10; 
f2 = this->round(f2, 2); 

 E 、注意
比如, 1.05, double在计算机中表示为 1.0499999997, float表示为1.0500000003, 但其实际都是与1.05相等的。
round方方式对处理的位数为5的情况有例外,比如: 1.05, 处理的结果 可能为1.0499999997。 这里写的是float, 你可以换做其他的类型。自己多测几次就明白了


# C++数据精度  # 基于C++浮点数(float、double)类型数据比较与转换的详解  # C++数据精度问题的解决方案(对浮点数保存指定位小数)  # C++浮点数类型详情  # C++实现浮点数精确加法  # 解析C++ 浮点数的格式化显示  # 深入C/C++浮点数在内存中的存储方式详解  # C++浮点型的存储方式详解  # C++浮点数在内存中的存储详解  # C/C++浮点数使用的两个注意事项详解  # C++中浮点类型的具体使用  # 的是  # 都是  # 你可以  # 几次  # 其他的  # 能为  # 但其  # 数为  # 返回值  # 机中  # 头文件  # 求取  # 求精  # 明白了  # 浮点数  # std  # namespace  # gt  # iomanip  # br 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: jquery插件bootstrapValidator表单验证详解  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何在Tomcat中配置并部署网站项目?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  如何在Windows 2008云服务器安全搭建网站?  如何快速生成高效建站系统源代码?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel如何发送系统通知?(Notification渠道示例)  如何快速搭建高效WAP手机网站?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  MySQL查询结果复制到新表的方法(更新、插入)  制作电商网页,电商供应链怎么做?  Laravel如何处理和验证JSON类型的数据库字段  电商网站制作价格怎么算,网上拍卖流程以及规则?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何在企业微信快速生成手机电脑官网?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  简单实现Android验证码  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel如何实现模型的全局作用域?(Global Scope示例)  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何在Ubuntu系统下快速搭建WordPress个人网站?  Windows Hello人脸识别突然无法使用  详解jQuery停止动画——stop()方法的使用  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  专业商城网站制作公司有哪些,pi商城官网是哪个?  Android GridView 滑动条设置一直显示状态(推荐)  如何快速使用云服务器搭建个人网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何挑选高效建站主机与优质域名?  如何将凡科建站内容保存为本地文件?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何快速登录WAP自助建站平台?  浅谈javascript alert和confirm的美化  Internet Explorer官网直接进入 IE浏览器在线体验版网址  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在云主机快速搭建网站站点?  如何在建站之星网店版论坛获取技术支持?  如何撰写建站申请书?关键要点有哪些?  Android实现代码画虚线边框背景效果