C语言问题%f和%lf的区别 C语言里scanf中,%lf和%f区别是什么?我这么写的。 ...

c\u8bed\u8a00\u4e2d%f\u4e0e%lf\u6709\u4ec0\u4e48\u533a\u522b\uff1f

%lf\n\u548c%f\n\u7684\u533a\u522b\u4e3a\uff1a\u8f93\u5165\u4e0d\u540c\u3001\u8f93\u51fa\u4e0d\u540c\u3001\u7cbe\u5ea6\u635f\u5931\u4e0d\u540c\u3002
\u4e00\u3001\u8f93\u5165\u4e0d\u540c
1\u3001%lf\n\uff1a%lf\n\u8f93\u5165\u6570\u636e\u65f6\u8981\u6c42\u662ffloat\u7c7b\u578b\u3002
2\u3001%f\n\uff1a%f\n\u8f93\u5165\u6570\u636e\u65f6\u8981\u6c42\u662fdouble\u7c7b\u578b\u3002
\u4e8c\u3001\u8f93\u51fa\u4e0d\u540c
1\u3001%lf\n\uff1adouble\u7c7b\u578b\u4ee5%lf\n\u683c\u5f0f\u8f93\u51fa\u6570\u636e\u65f6\u4e0d\u4f1a\u81ea\u52a8\u8f6c\u6210%lf\n\u683c\u5f0f\uff0c\u4f1a\u5bfc\u81f4\u8f93\u5165\u503c\u9519\u8bef\u3002
2\u3001%f\n\uff1afloat\u7c7b\u578b\u4ee5%f\n\u683c\u5f0f\u8f93\u51fa\u6570\u636e\u65f6\u4f1a\u81ea\u52a8\u8f6c\u6210%f\n\u683c\u5f0f\uff0c\u4e0d\u4f1a\u5bfc\u81f4\u8f93\u5165\u503c\u9519\u8bef\u3002

\u4e09\u3001\u7cbe\u5ea6\u635f\u5931\u4e0d\u540c
1\u3001%lf\n\uff1a\u5355\u7cbe\u5ea6\u6570\u636e\u4f7f\u7528%lf\n\u683c\u5f0f\u4f1a\u9020\u6210\u7cbe\u5ea6\u635f\u5931\u3002
2\u3001%f\n\uff1a\u53cc\u7cbe\u5ea6\u6570\u636e\u4f7f\u7528%f\n\u4e0d\u4f1a\u9020\u6210\u7cbe\u5ea6\u635f\u5931\u3002

%f \u662f\u6d6e\u70b9\u578b\uff08\u5355\u7cbe\u5ea6\uff09\uff0c\u53604\u5b57\u8282
%lf \u662f\u6d6e\u70b9\u578b\uff08\u53cc\u7cbe\u5ea6\uff09\uff0c\u53608\u5b57\u8282
scanf \u6309\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\u6307\u5b9a\u7c7b\u578b\u5c06\u7528\u6237\u8f93\u5165\u7684\u5185\u5bb9\u8f6c\u6362\uff0c\u7136\u540e\u5199\u5230\u6307\u5b9a\u7684\u5730\u5740\u3002\u4e24\u79cd\u7c7b\u578b\u5b58\u50a8\u65b9\u5f0f\uff0c\u6240\u5360\u5185\u5b58\u4e0d\u540c\uff0c\u7c7b\u578b\u9519\u8bef\u81ea\u7136\u4f1a\u5f97\u5230\u9519\u8bef\u7ed3\u679c\u3002

由于精度的原因,输出%lf和%f的数据不同,可能会造成错误。

主要有一下四点区别:

1、代表的数据类型不同

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。

2、有效数字位数不同

单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。

3、所能表示数的范围不同

单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

4、在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。



%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
其中:
float,单精度浮点型,对应%f.
double,双精度浮点型,对应%lf.

在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。

在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

所以在输入输出时,一定要区分好double和float,而使用对应的格式符号。

好好看看数据类型的概念吧,把前面的double换成float后面就可以用%f;%f代表按实型输入或输出,而%lf代表按双精度输入或输出,怎么会没有关系呢?输入时采取的格式不同,存在电脑里的数据就不同,电脑里同样的数据(都是由0和1组成的相同的二进制数)按不同的格式输出结果也不会相同

因为你定义的a,b,c都是double型吖…所以scanf()接收的a,b,c都是double型…double就是%lf咯…

如果用%f就是flout型咯…就跟定义的卟同了喔…

你之前已经定义到double了,最后的输出值是按照表达式中的最多有效数字的形式定义的,也就是说如果你定义int a;doubule b;但是输出是c=a+b,c则是double型

  • c璇█涓璮鍜宭f鐨勫尯鍒
    绛旓細鍦╟璇█涓璮鍜宭f鐨勫叏绉版槸%lf 涓%f锛屽畠浠殑鍖哄埆濡備笅锛1銆佹墍鑳借〃绀烘暟鐨勮寖鍥翠笉鍚銆傚崟绮惧害娴偣鐨勮〃绀鸿寖鍥达細-3.40E+38 ~ +3.40E+38锛屽弻绮惧害娴偣鐨勮〃绀鸿寖鍥达細-1.79E+308 ~ +1.79E+308 2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓銆傚崟绮惧害娴偣鏁版湁鏁堟暟瀛椾繚璇6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃
  • C璇█闂%f鍜%lf鐨勫尯鍒
    绛旓細涓昏鏈変竴涓嬪洓鐐瑰尯鍒細1銆佷唬琛ㄧ殑鏁版嵁绫诲瀷涓嶅悓 f浠h〃鍗曠簿搴︽诞鐐瑰瀷鏁版嵁锛坒loat锛夛紝%lf浠h〃鍙岀簿搴︽诞鐐瑰瀷鏁版嵁锛坉ouble锛銆2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓 鍗曠簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃3銆鎵鑳借〃绀烘暟鐨勮寖鍥翠笉鍚 鍗曠簿搴︽诞鐐圭殑琛ㄧず鑼冨洿锛-3.40E+38 ~ +3.40E...
  • c璇█閲%f璺%lf鏈変粈涔堝尯鍒?
    绛旓細涓昏鏈変竴涓嬪洓鐐瑰尯鍒細1銆佷唬琛ㄧ殑鏁版嵁绫诲瀷涓嶅悓 f浠h〃鍗曠簿搴︽诞鐐瑰瀷鏁版嵁锛坒loat锛夛紝%lf浠h〃鍙岀簿搴︽诞鐐瑰瀷鏁版嵁锛坉ouble锛銆2銆鏈夋晥鏁板瓧浣嶆暟涓嶅悓 鍗曠簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉6浣嶏紝閮ㄥ垎7浣嶏紝鍙岀簿搴︽诞鐐规暟鏈夋晥鏁板瓧淇濊瘉15浣嶏紝閮ㄥ垎16浣嶃3銆鎵鑳借〃绀烘暟鐨勮寖鍥翠笉鍚 鍗曠簿搴︽诞鐐圭殑琛ㄧず鑼冨洿锛-3.40E+38 ~ +3.40E...
  • c璇█涓殑% f鍜% lf鏈変粈涔堝尯鍒?
    绛旓細f 鏄緭鍑 double 鍨嬪彉閲忥紱鍖哄垎锛%f 鏄緭鍑 float 鍨嬪彉閲忥紱%Lf 鏄緭鍑 long double 鍨嬪彉閲銆傚熀鏈暟鎹被鍨 void锛氬0鏄庡嚱鏁版棤杩斿洖鍊兼垨鏃犲弬鏁帮紝澹版槑鏃犵被鍨嬫寚閽堬紝鏄剧ず涓㈠純杩愮畻缁撴灉銆傦紙C89鏍囧噯鏂板锛塩har锛氬瓧绗﹀瀷绫诲瀷鏁版嵁锛屽睘浜庢暣鍨嬫暟鎹殑涓绉嶃傦紙K&R鏃舵湡寮曞叆锛塱nt锛氭暣鍨嬫暟鎹紝琛ㄧず鑼冨洿閫氬父涓虹紪璇戝櫒鎸囧畾鐨勫唴瀛...
  • % f鍜% Lf鏈変粈涔堝尯鍒鍚?
    绛旓細1銆%f 鏄緭鍑 float 鍨嬪彉閲忥紱%f 鏄緭鍑 double 鍨嬪彉閲忥紱%Lf 鏄緭鍑 long double 鍨嬪彉閲銆2銆佸湪C璇█涓紝瀵逛簬鏁板肩被鍨嬪彧鏈夐氳繃printf绫诲嚱鏁拌緭鍑鸿繖涓绉嶆柟寮忥紝姣斿printf, sprintf, fprintf绛夈傝繖绫诲嚱鏁拌緭鍑烘椂瑕佹眰鏈夋牸寮忕鍙凤紝鍏朵腑long double鐨勬牸寮忕鍙蜂负%Lf銆備互涓嬫槸涓涓畝鍗曠殑鍙傝冧唬鐮侊紝杈撳嚭鍒版爣鍑嗚緭鍑...
  • C璇█涓 %f 涓%lf 鏈変粈涔堝尯鍒?鑳藉惁涓句竴涓畝鍗曟槗鎳傜殑渚嬪瓙?鍒濆鑰,鍦ㄧ嚎...
    绛旓細f 鑸搴斿崟绮惧害绫诲瀷 float lf 鑸搴斿弻绮惧害绫诲瀷 double f鏄崟绮惧害娴偣鍨嬶紝杈撳嚭鐨勬椂鍊欒婊¤冻6浣嶅皬鏁般俵f灏辨槸杈撳嚭鏁板兼婚暱搴︿负L,鏁存暟涓暟鍔犲皬鏁颁釜鏁,涓嶈冻琛ョ┖,鍙抽《鏍艰捣
  • c璇█涓% if鍜% f鐨勫尯鍒
    绛旓細c璇█鏄%if瀵瑰簲double锛%f瀵瑰簲float銆俿canf()锛氣%lf鈥濈敤浜巇ouble绫诲瀷锛屸%f鈥濈敤浜巉loat绫诲瀷printf()锛氣%f鈥濇棦鍙敤浜巇ouble绫诲瀷锛屼篃鍙敤浜巉loat绫诲瀷锛屾剰鎬濇槸鎸団滀繚鐣6浣嶅皬鏁扳濄f鍜%lf鍒嗗埆鏄痜loat绫诲瀷鍜宒ouble绫诲瀷鐢ㄤ簬鏍煎紡鍖栬緭鍏ヨ緭鍑烘椂瀵瑰簲鐨勬牸寮忕鍙枫傚叾涓細float锛屽崟绮惧害娴偣鍨嬶紝瀵瑰簲%f銆俤ouble锛屽弻绮惧害...
  • c璇█涓%f涓%lf鏈変粈涔堝尯鍒?
    绛旓細鏈绠鍗鐨勫尯鍒:f 涓鑸搴斿崟绮惧害绫诲瀷 float lf 涓鑸搴斿弻绮惧害绫诲瀷 double銆
  • c璇█涓, double銆 float銆% f銆% lf鏈変粈涔堝尯鍒
    绛旓細1.鍙岀簿搴︽诞鐐瑰瀷鏁版嵁鐢%lf杈撳嚭銆傚洜涓篸ouble鏄8涓瓧鑺傜殑锛宖loat鏄4涓瓧鑺傜殑锛%f 鐨勬牸寮忓氨鏄4涓瓧鑺傜殑锛岃 %lf 灏辨槸8涓瓧鑺傜殑銆 渚嬪锛歱rintf("%lf\n",x);2.short 鍗犵敤鍐呭瓨绌洪棿2涓瓧鑺傦紝鐭暣鍨嬫暟鎹敤%d杈撳嚭 渚嬪锛歱rintf("%d\n",a);渚嬶細include <stdio.h> int main(){double x;short...
  • 璇烽棶c璇█涓,%c %d %f %lf鍒嗗埆鏄粈涔堟剰鎬濆摝
    绛旓細c锛氭槸瀛樺彇鎴栬呰緭鍑轰竴涓瓧绗 d:鏄瓨鍙栨垨鑰呰緭鍑轰竴涓暣鏁 lf: 鏄瓨鍙栨垨鑰呰緭鍑轰竴涓暱鏁村瀷灏忔暟銆
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网