C++解决数据精度问题,对浮点数保存指定位小数
来源:互联网 发布:自己的淘宝账号查询 编辑:程序博客网 时间:2024/05/22 11:36
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, 你可以换做其他的类型。自己多测几次就明白了
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
阅读全文
1 0
- C++解决数据精度问题,对浮点数保存指定位小数
- 浮点数精度丢失问题的解决
- 浮点数精度问题
- 浮点数精度问题
- 浮点数精度问题
- js小数运算精度问题,js浮点数运算时出现精度问题
- 一个有关C语言浮点数保留2位小数的操蛋问题
- Python的浮点数损失精度问题(为什么说双精度浮点数有15位十进制精度)
- 剖析js对浮点数运算精度问题
- 【Java】解决计算浮点数精度问题(BigDecimal)
- Java中解决浮点数精度的问题
- Java中解决浮点数精度的问题
- Java中解决浮点数精度的问题
- 浮点数的精度问题
- java 浮点数精度问题
- JAVA浮点数精度问题
- js浮点数精度问题
- 浮点数精度丢失问题
- Springboot 热部署的两种方式
- java中的异常
- 元素从失去焦点到其他元素被点击期间的事件
- Laravel学习过程之Laravel安装及配置(一)
- linux系统下单网卡绑定多个IP地址
- C++解决数据精度问题,对浮点数保存指定位小数
- 设计模式-模版设计模式概述和使用-抽象类
- 应用调试之自制系统调用、编写进程查看器(二)
- typedef 的详细用法
- Spring注解@Component、@Repository、@Service、@Controller区别
- 1000瓶水和1瓶毒水还有10只老鼠
- Atom 推荐插件
- Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍