国产探花免费观看_亚洲丰满少妇自慰呻吟_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++數據精度問題的解決方案(對浮點數保存指定位小數),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳城县| 法库县| 五华县| 八宿县| 海兴县| 岳阳市| 昭平县| 航空| 房山区| 石门县| 通辽市| 汤阴县| 金湖县| 漠河县| 西乌珠穆沁旗| 区。| 屏山县| 原阳县| 合水县| 长沙县| 天镇县| 大英县| 睢宁县| 广东省| 格尔木市| 仙桃市| 彭阳县| 波密县| 资中县| 泗阳县| 江山市| 甘肃省| 那曲县| 麻栗坡县| 莱州市| 南和县| 砀山县| 紫云| 府谷县| 阳原县| 同仁县|