首先对于我自己而言,刚刚学习C语言的时候一直弄不清楚如何打印小数,尤其是打印两位或者三位小数,当时只会打印整数,也就导致后来一直被蒙在鼓里。下面是我在弄清楚如何打印的过程中的一点心得体会,给还在迷茫中的初学者提供一些参考。
我们知道小数在C语言之中分为两种类型,分别是float和double。它们的区别大致如下:
1.float是单精度浮点数,储存时占空间为4个字节。而double是双精度浮点数,储存时占8个字节.因此呢,两者处理速度不同,CPU处理float的速度比处理double快。double的精度高,double消耗内存是float的两倍。
2.对于C语言的小数而言,程序默认小数的类型为double而不是float,因此往往我们需要在小数后加上f,或者用float进行强行转化!!(下图三种都是一位小数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是一样的就不演示了。
好了到这里,我就讲了我自己的理解方式,希望对各位初学者有帮助,欢迎批评指正哦!