C++数据精度问题的解决方案(对浮点数保存指定位小数)

 更新时间:2017年08月01日 16:36:37   作者:_技术小白  
对浮点数保存指定位小数,怎么解决这个问题呢?如果有小伙伴对C++数据精度问题的解决方案感兴趣的朋友一起看看吧

 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语言统计字符个数代码分享

    C语言统计字符个数代码分享

    本文给大家分享的是2则C语言实现统计字符个数的代码,非常的简单实用,小伙伴们根据自己的项目需求自由选择吧。
    2015-07-07
  • opencv车道线检测的实现方法

    opencv车道线检测的实现方法

    这篇文章主要介绍了opencv车道线检测的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 浅谈c++中的stl中的map用法详解

    浅谈c++中的stl中的map用法详解

    下面小编就为大家带来一篇浅谈c++中的stl中的map用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • C语言实现密码强度检测

    C语言实现密码强度检测

    这篇文章主要为大家详细介绍了C语言实现密码强度检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 如何用C++实现双向循环链表

    如何用C++实现双向循环链表

    本篇文章是对用C++实现双向循环链表的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言 以数据块的形式读写文件详解及实现代码

    C语言 以数据块的形式读写文件详解及实现代码

    本文主要介绍 C语言 以数据块的形式读写文件,这里对相关知识资料做了整理,并附代码示例,以便大家学习参考,有学习此部分知识的朋友可以参考下
    2016-08-08
  • C++实践Time类中的运算符重载参考方法

    C++实践Time类中的运算符重载参考方法

    今天小编就为大家分享一篇关于C++实践Time类中的运算符重载参考方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • C++编程中变量的声明和定义以及预处理命令解析

    C++编程中变量的声明和定义以及预处理命令解析

    这篇文章主要介绍了C++编程中变量的声明和定义以及预处理命令解析,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • DSP中浮点转定点运算--定点数的加减乘除运算

    DSP中浮点转定点运算--定点数的加减乘除运算

    本文主要介绍DSP中定点数的加减乘除运算,很值得学习一下,需要的朋友可以参考一下。
    2016-06-06
  • Qt实现图片移动实例(图文教程)

    Qt实现图片移动实例(图文教程)

    这学期实训的时候用MFC做过一个飞机大战,很无聊的东西,一直想用Qt做一个;首先需要解决的问题是图片的移动,怎么说飞机啊子弹啊都是动着的,图片当然要跑起来,感兴趣的你可不要走开啊
    2013-01-01

最新评论