C/C++ 控制浮點型精度
阿新 • • 發佈:2018-11-21
先乘取整再除
float fScore;
fScore=0.123456;
//*100表示保留的精度為0.01
//+0.005是為了四捨五入
int u32Score = (fScore+0.005) * 100;
fScore = (float)u32Score / 100;
字串法
/** 計算浮點型四捨五入。*/ float BaseConstruction::getAccuracy(float input,unsigned int accuracy) { #define buf_size 100 //通過輸入生成精度字串 (%0.*f) char accuracyBuf[buf_size]; sprintf_s(accuracyBuf,buf_size,"%%0.%df",accuracy); //通過輸入生成對應精度的float形列印輸出 char outputBuf[buf_size]; sprintf_s(outputBuf,buf_size,accuracyBuf,input); //迴轉回float行資料 float output = atof(outputBuf); return output; }
參考: