MFC之資料精度保留與計算

2021-08-22 16:18:38 字數 822 閱讀 6805

實際生產中,遇到這樣的問題, 我需要的資料是:1.500,然而得到的是 1.49999999999 或者  1.5000003 ,類似這樣的情況,我在之前的文章中也提到過,提出的解決方案不夠完美。 今天重提舊事,再次解決。

上**:

/**

* @brief: 資料求精度

* @param: in double dsrc : 待求精度數

* @param: in int ibits: 保留幾位小數, 0 - 不保留小數, 1 - 保留1位小數, 2 - 保留2位小數

* return: double

* 返回計算精度計算結果

*/double htool::roundbase(in double dsrc, in int ibits)

// 2、引數正確,執行計算

// 計算得到的結果

double retval = 0;

// 中間變數

int inttmp = 0;

// 3、 若 dsrc 小於零

if (0 > dsrc)

// 4、若 dsrc 大於零

else

return retval;

}

比如, a= 1.49999999999, 我需要用的是1.50, 這樣,呼叫一次該函式, 得到的就為1.50了。例如:

double dsrc     = 1.4999999;

double retvala = roundbase(dsrc, 2);

------- 歡迎指正 

nodejs float計算丟失精度,保留幾位小數

問題 0.1 0.2 0.30000000000000000003 使用bignumber.js const bignumber require bignumber.js function add a,b number中有個tofixed n 會四捨五入 如果不要四捨五入,只能借鑑其他方法,有看到乙...

php計算 處理丟失精度問題 保留小數

解決方法 使用php的內庫libbcmath 自 php 4.0.4,libbcmath 隨同 php 一起發布。該擴充套件不需要任何外部的庫 a bcdiv 100,100,2 除法 那麼 a 1.00 bcadd 2個任意精度數字的加法計算 bccomp 比較兩個任意精度的數字 bcdiv 2個...

處理PHP計算丟失精度問題(保留指定小數字)

使用php的內庫libbcmath 自 php 4.0.4,libbcmath 隨同 php 一起發布。該擴充套件不需要任何外部的庫 a bcdiv 100,100,2 除法 那麼 a 1.00 bcadd 2個任意精度數字的加法計算 bccomp 比較兩個任意精度的數字 bcdiv 2個任意精度的...