c语言中f和lf的区别是什么?
在c语言中f和lf的全称是%lf 与%f,它们的区别如下:
1、所能表示数的范围不同。
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
2、有效数字位数不同。
单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。
3、代表的数据类型不同。
%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。
4、输入不同。
%lf
:%lf
输入数据时要求是float类型。%f
:%f
输入数据时要求是double类型。
5、输出不同。
%lf
:double类型以%lf
格式输出数据时不会自动转成%lf
格式,会导致输入值错误。%f
:float类型以%f
格式输出数据时会自动转成%f
格式,不会导致输入值错误。
主要特点:
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
绛旓細鍦╟璇█涓璮鍜宭f鐨勫叏绉版槸%lf 涓%f锛屽畠浠殑鍖哄埆濡備笅锛1銆佹墍鑳借〃绀烘暟鐨勮寖鍥翠笉鍚銆傚崟绮惧害娴偣鐨勮〃绀鸿寖鍥达細-3.40E+38 ~ +3.40E+38锛屽弻绮惧害娴偣鐨勮〃绀鸿寖鍥达細-1.79E+308 ~ +1.79E+308 2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓銆傚崟绮惧害娴偣鏁版湁鏁堟暟瀛椾繚璇6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃
绛旓細1銆佷唬琛ㄧ殑鏁版嵁绫诲瀷涓嶅悓 f浠h〃鍗曠簿搴︽诞鐐瑰瀷鏁版嵁锛坒loat锛夛紝%lf浠h〃鍙岀簿搴︽诞鐐瑰瀷鏁版嵁锛坉ouble锛夈2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓 鍗曠簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃3銆鎵鑳借〃绀烘暟鐨勮寖鍥翠笉鍚 鍗曠簿搴︽诞鐐圭殑琛ㄧず鑼冨洿锛-3.40E+38 ~ +3.40E+38锛屽弻绮惧害娴偣鐨勮〃绀...
绛旓細f鏄崟绮惧害娴偣鍨锛岃緭鍑虹殑鏃跺欒婊¤冻6浣嶅皬鏁般俵f灏辨槸杈撳嚭鏁板兼婚暱搴︿负L,鏁存暟涓暟鍔犲皬鏁颁釜鏁,涓嶈冻琛ョ┖,鍙抽《鏍艰捣
绛旓細1銆佷唬琛ㄧ殑鏁版嵁绫诲瀷涓嶅悓 f浠h〃鍗曠簿搴︽诞鐐瑰瀷鏁版嵁锛坒loat锛夛紝%lf浠h〃鍙岀簿搴︽诞鐐瑰瀷鏁版嵁锛坉ouble锛夈2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓 鍗曠簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃3銆鎵鑳借〃绀烘暟鐨勮寖鍥翠笉鍚 鍗曠簿搴︽诞鐐圭殑琛ㄧず鑼冨洿锛-3.40E+38 ~ +3.40E+38锛屽弻绮惧害娴偣鐨勮〃绀...
绛旓細鏈绠鍗鐨勫尯鍒:f 涓鑸搴斿崟绮惧害绫诲瀷 float lf 涓鑸搴斿弻绮惧害绫诲瀷 double銆
绛旓細f 鏄诞鐐瑰瀷锛堝崟绮惧害锛夛紝鍗4瀛楄妭 lf 鏄诞鐐瑰瀷锛堝弻绮惧害锛夛紝鍗8瀛楄妭 scanf 鎸夋牸寮忓寲瀛楃涓叉寚瀹氱被鍨嬪皢鐢ㄦ埛杈撳叆鐨勫唴瀹硅浆鎹紝鐒跺悗鍐欏埌鎸囧畾鐨勫湴鍧銆備袱绉嶇被鍨嬪瓨鍌ㄦ柟寮忥紝鎵鍗犲唴瀛涓嶅悓锛岀被鍨嬮敊璇嚜鐒朵細寰楀埌閿欒缁撴灉銆
绛旓細f 鏄緭鍑 double 鍨嬪彉閲忥紱鍖哄垎锛%f 鏄緭鍑 float 鍨嬪彉閲忥紱%Lf 鏄緭鍑 long double 鍨嬪彉閲忋傚熀鏈暟鎹被鍨 void锛氬0鏄庡嚱鏁版棤杩斿洖鍊兼垨鏃犲弬鏁帮紝澹版槑鏃犵被鍨嬫寚閽堬紝鏄剧ず涓㈠純杩愮畻缁撴灉銆傦紙C89鏍囧噯鏂板锛塩har锛氬瓧绗﹀瀷绫诲瀷鏁版嵁锛屽睘浜庢暣鍨嬫暟鎹殑涓绉嶃傦紙K&R鏃舵湡寮曞叆锛塱nt锛氭暣鍨嬫暟鎹紝琛ㄧず鑼冨洿閫氬父涓虹紪璇戝櫒鎸囧畾鐨勫唴瀛...
绛旓細f鏍煎紡锛岄粯璁ゆ湁6浣嶅皬鏁帮紝浣嗘槸float绫诲瀷鏈澶氬彧鑳戒繚瀛6-7浣嶆湁鏁堟暟瀛楋紝濡傛灉瓒呭嚭姝よ寖鍥达紝鍒欏浣欑殑鏁板瓧娌℃湁鎰忎箟銆俧loat绫诲瀷鍗犵敤4涓瓧鑺傘俵f鏍煎紡锛岀敤鏉ヨ緭鍑篸ouble鍨嬫暟鎹紝榛樿鏈6浣嶅皬鏁帮紝鏈澶氳兘淇濆瓨15-16浣嶄綅鏈夋晥鏁板瓧銆俤ouble鍨嬪崰鐢8涓瓧鑺傘8.4lf锛岃緭鍑烘诲搴﹁嚦灏8浣嶏紝涓嶈冻鏃讹紝鍓嶉潰琛ョ┖鏍硷紱鍥哄畾杈撳嚭4浣嶅皬鏁...
绛旓細f鍜%lf鍒嗗埆鏄痜loat绫诲瀷鍜宒ouble绫诲瀷鐢ㄤ簬鏍煎紡鍖栬緭鍏ヨ緭鍑烘椂瀵瑰簲鐨勬牸寮忕鍙枫傚叾涓細float锛屽崟绮惧害娴偣鍨嬶紝瀵瑰簲%f.double,鍙岀簿搴︽诞鐐瑰瀷锛屽搴%lf.鍦ㄧ敤浜庤緭鍑烘椂:float绫诲瀷鍙互浣跨敤%lf鏍煎紡锛屼絾涓嶄細鏈変换浣曞ソ澶勩俤ouble绫诲瀷濡傛灉浣跨敤浜%f鏍煎紡鍙兘浼氬鑷磋緭鍑洪敊璇傚湪鐢ㄤ簬杈撳叆鏃:double 绫诲瀷浣跨敤浜%f鏍煎紡锛屼細瀵艰嚧杈撳叆鍊...
绛旓細c璇█鏄%if瀵瑰簲double锛%f瀵瑰簲float銆俿canf()锛氣%lf鈥濈敤浜巇ouble绫诲瀷锛屸%f鈥濈敤浜巉loat绫诲瀷printf()锛氣%f鈥濇棦鍙敤浜巇ouble绫诲瀷锛屼篃鍙敤浜巉loat绫诲瀷锛屾剰鎬濇槸鎸団滀繚鐣6浣嶅皬鏁扳濄f鍜%lf鍒嗗埆鏄痜loat绫诲瀷鍜宒ouble绫诲瀷鐢ㄤ簬鏍煎紡鍖栬緭鍏ヨ緭鍑烘椂瀵瑰簲鐨勬牸寮忕鍙枫傚叾涓細float锛屽崟绮惧害娴偣鍨嬶紝瀵瑰簲%f銆俤ouble锛屽弻绮惧害...