国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++數據精度問題的解決方案(對浮點數保存指定位小數)

2020-01-26 13:59:06
字體:
來源:轉載
供稿:網友

 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++數據精度問題的解決方案(對浮點數保存指定位小數),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰西县| 永泰县| 金堂县| 昆明市| 新营市| 温州市| 石棉县| 邛崃市| 金湖县| 南康市| 临泉县| 定兴县| 灵武市| 开阳县| 阿城市| 景东| 霍城县| 尚义县| 花莲市| 溆浦县| 德令哈市| 晋城| 高邑县| 北安市| 罗田县| 靖边县| 化州市| 舟山市| 连平县| 宁晋县| 资阳市| 嫩江县| 蓝山县| 东乌珠穆沁旗| 百色市| 镇雄县| 民丰县| 甘泉县| 长宁县| 普兰县| 西充县|