
首先對于我自己而言,剛剛學習C語言的時候一直弄不清楚如何打印小數,尤其是打印兩位或者三位小數,當時只會打印整數,也就導致后來一直被蒙在鼓里。下面是我在弄清楚如何打印的過程中的一點心得體會,給還在迷茫中的初學者提供一些參考。
我們知道小數在C語言之中分為兩種類型,分別是float和double。它們的區別大致如下:
(資料圖)
1.float是單精度浮點數,儲存時占空間為4個字節。而double是雙精度浮點數,儲存時占8個字節.因此呢,兩者處理速度不同,CPU處理float的速度比處理double快。double的精度高,double消耗內存是float的兩倍。
2.對于C語言的小數而言,程序默認小數的類型為double而不是float,因此往往我們需要在小數后加上f,或者用float進行強行轉化?。。ㄏ聢D三種都是一位小數2.4)
3.對于float輸出時使用占位符%f,對于double輸出時使用占位符%lf
總結其實本質上float和double都可以表示多為小數,差別在于能表示的數據的多少,就像 short int long long long的差別只是能表示的范圍的大小不同而已。
(double是雙精度浮點數,內存占8個字節,有效數字16位,表示范圍是-1.79E+ 308~-1.79E+308)
下面是它的保留多位小數的方法:(注意打印保留小數是四舍五入的)
三種寫法都可以輸出5.57,若你要保留兩位小數就在printf中加上%.2f,一位小數就加上%.1f,保留整數就加上%.0f。當然對于lf也是同理%1.lf一位小數%2.lf兩位小數以此類推即可
下面是打印一位小數和整數的代碼示意圖:
double是一樣的就不演示了。
好了到這里,我就講了我自己的理解方式,希望對各位初學者有幫助,歡迎批評指正哦!