代码如下:
%f和%lf是格式字符串,作用是在数据输入或输出时,把数据按照指定的格式(例如%d就代表十进制形式)输入或输出。
%f代表单精度浮点型数据,也就是float数据类型;%lf代表双精度浮点型数据,也就是double数据类型。
一个float类型的数据的有效数字一般是6位,分配4个字节,数值范围(绝对值)是0以及1.2×10-38~3.4×1038。
一个double类型的数据的有效数字一般是15位,分配8个字节,数值范围(绝对值)是0以及2.3×10-308~1.7×10308。
需要注意的是:
在C语言中,在使用scanf输入函数和printf输出函数时,只有scanf函数需要区分%f和%lf,也就是说当输入数据是float类型时只能用%f,当输入数据是double类型时只能用%lf。
而printf输出函数则没有那么严格,因为%f既可以用来输出float类型的数据,也可以用来输出double类型的数据。
但是严格来说,%lf在printf下是未定义的,也就是说是不能用的,但是很多编译器可能会支持它,所以我们会看到printf也可以用%lf来输出float类型或double类型的数据的现象,但我们还是尽量用%f,毕竟printf用%f输出float和double类型的数据才是“正统”。