將你需保留的那一位的低一位加5之後舍掉即可微控制器內一般採用整數計算,如果要保留兩位小數,需將原資料擴大100倍,小數點該向左移2位18754/100=187·54但微控制器只能算整數,因此結果只能是187因此計算時我們我們將被除數擴大100倍相當於小數點向右移2位,1875400/100=18754然後我們將計算結果的小數點再向左移回來2位,即變成了187.54這就是定點小數的演算法如果18754/100我們只保留一位小數我們可以這樣處理(18754*100+500)=18759001875900/100=18759小數點左移2位,結果187.59最後一位不考慮取187.5但如果18755/100我們只保留一位小數(18755*100+500)=18760001876000/100=18760小數點左移2位,結果187.60最後一位不考慮取187.6看到了吧,4捨去了5就入上去了所以要保留三位小數,需將原來資料擴大1000倍,再除1000所以要保留4位小數,需將原來資料擴大10000倍,再除10000.......擴大100倍或1000倍操作要放在除法之前,因除法才會導致小數丟失需4舍5入,將要保留的那一位數的低一位加5即可當然這是低階演算法,用C語言程式設計直接可以用浮點數,結果輸出時會自動四舍5入你所要做的是將浮點數轉換為字元(用sprint函式)並控制輸出資料的位數,格式控制類似於printf函式
將你需保留的那一位的低一位加5之後舍掉即可微控制器內一般採用整數計算,如果要保留兩位小數,需將原資料擴大100倍,小數點該向左移2位18754/100=187·54但微控制器只能算整數,因此結果只能是187因此計算時我們我們將被除數擴大100倍相當於小數點向右移2位,1875400/100=18754然後我們將計算結果的小數點再向左移回來2位,即變成了187.54這就是定點小數的演算法如果18754/100我們只保留一位小數我們可以這樣處理(18754*100+500)=18759001875900/100=18759小數點左移2位,結果187.59最後一位不考慮取187.5但如果18755/100我們只保留一位小數(18755*100+500)=18760001876000/100=18760小數點左移2位,結果187.60最後一位不考慮取187.6看到了吧,4捨去了5就入上去了所以要保留三位小數,需將原來資料擴大1000倍,再除1000所以要保留4位小數,需將原來資料擴大10000倍,再除10000.......擴大100倍或1000倍操作要放在除法之前,因除法才會導致小數丟失需4舍5入,將要保留的那一位數的低一位加5即可當然這是低階演算法,用C語言程式設計直接可以用浮點數,結果輸出時會自動四舍5入你所要做的是將浮點數轉換為字元(用sprint函式)並控制輸出資料的位數,格式控制類似於printf函式