C语言中单精度浮点数和双精度分别如何表示?有什么差别? C语言怎么表示单精度浮点数

C\u8bed\u8a00\u4e2d\u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\u548c\u53cc\u7cbe\u5ea6\u5206\u522b\u5982\u4f55\u8868\u793a\uff1f\u6709\u4ec0\u4e48\u5dee\u522b\uff1f

C\u8bed\u8a00\u4e2d\uff0c\u5355\u7cbe\u5ea6\u6d6e\u70b9\u578b\u4e3afloat\uff0c \u53cc\u7cbe\u5ea6\u6d6e\u70b9\u578b\u4e3adouble\u3002\u5177\u4f53\u533a\u522b\u5982\u4e0b\uff1a
1\u3001 \u5360\u7528\u5b57\u8282\u7a7a\u95f4\u4e0d\u540c\u3002
\u4e00\u4e2afloat\u53d8\u91cf\u5360\u7528\u56db\u5b57\u8282\uff0c\u4e00\u4e2adouble\u7c7b\u578b\u53d8\u91cf\uff0c\u4e00\u822c\u5360\u75288\u5b57\u8282\u3002
2\u3001 \u8868\u793a\u8303\u56f4\u4e0d\u540c\u3002
float\u8868\u793a\u8303\u56f4\u4e3a-3.4E-38\uff5e3.4E+38\u3002

double \u8868\u793a\u8303\u56f4\u4e3a-1.7E-308\uff5e1.7E+308\u3002

3\u3001 \u7cbe\u5ea6\u4e0d\u540c\u3002
float\u5728\u8868\u793a\u5341\u8fdb\u5236\u65f6\uff0c\u6709\u6548\u6570\u5b57\u4e3a6\u52307\u4f4d\u3002

double\u5728\u8868\u793a\u5341\u8fdb\u5236\u65f6\uff0c\u6709\u6548\u6570\u5b57\u4e3a15\u523016\u4f4d\u3002
4\u3001\u8f93\u5165\u8f93\u51fa\u683c\u5f0f\u4e0d\u540c\u3002

\u5728C\u8bed\u8a00\u4e2d\uff0c\u8f93\u5165\u8f93\u51fa\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\uff0cfloat\u4f7f\u7528%f\uff0c\u800cdouble\u4f7f\u7528%lf\u3002

\u3000\u3000\u5728C\u8bed\u8a00\u6e90\u7801\u4e2d\uff0c\u53ea\u80fd\u5728\u6d6e\u70b9\u6570\u540e\u9762\u52a0f\u6765\u8868\u793a\u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\u3002\u8b6c\u5982\u5982\u4e0b\u4ee3\u7801\uff1a
float f = 1.1f; \u6216\u8005float f = 1.1F;\u3000\u3000\u5927\u5c0f\u5199\u90fd\u53ef\u4ee5\u7684\u3002

\u3000\u300016\u8fdb\u5236\u7684\u6d6e\u70b9\u6570\u7f16\u7801\uff0c\u5b83\u4e0d\u50cf\u6574\u6570\u7f16\u7801\u90a3\u6837\u76f4\u89c2\uff0c\u56e0\u4e3a\u6d6e\u70b9\u6570\u7f16\u7801\uff0c\u5728\u8ba1\u7b97\u673a\u4e2d\u662f\u4ee5IEEE754\u683c\u5f0f\u8fdb\u884c\u7f16\u7801\u7f16\u7801\u7684\uff0c\u6bcf\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u90fd\u6709\u4e0d\u540c\u7684\u610f\u601d\uff0c\u62ff\u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\u6765\u8bf4\uff0c\u5b83\u7684\u7b26\u53f7\u4f4d\u53601\u4f4d\uff0c\u6307\u6570\u4f4d\u53608\u4f4d\uff0c\u6709\u6548\u6570\u5b57\u4f4d\u536023\u4f4d\uff0c\u800c\u4e14\uff0c\u5982\u679c\u4f7f\u7528\u5341\u516d\u8fdb\u5236\u6765\u4f20\u9001\uff0c\u4f60\u8fd8\u8981\u786e\u5b9a\u8ba1\u7b97\u673a\u7684\u5185\u5b58\uff0c\u5b58\u50a8\u987a\u5e8f\u3002 \u76f8\u5bf9\u5f88\u590d\u6742\u7684\u3002

\u3000\u3000\u8981\u4e86\u89e3\u66f4\u591a\u6d6e\u70b9\u6570\u7f16\u7801\u7684\u95ee\u9898\uff0c\u53ef\u4ee5\u81ea\u5df1\u627e\u4e00\u4e0bIEEE754\u7f16\u7801\u683c\u5f0f\u8be6\u7ec6\u7684\u4ecb\u7ecd\u3002\u4e5f\u8bb8\u4f1a\u5e2e\u5230\u4f60\uff01

C语言中,单精度浮点型为float, 双精度浮点型为double。

  1. Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。

  2. double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。

二者区别:

  1. 占用字节空间不同。
    一个float变量占用四字节,一个double类型变量,一般占用8字节。

  2. 表示范围不同。

    float表示范围为-3.4E-38~3.4E+38。double 表示范围为-1.7E-308~1.7E+308。

  3. 精度不同。
    float在表示十进制时,有效数字为6到7位。double在表示十进制时,有效数字为15到16位。

  4. 输入输出格式不同。
    在C语言中,输入输出格式化字符串,float使用%f,而double使用%lf。



  • c璇█涓崟绮惧害鍨涓庡弻绮惧害鍨嬫湁浠涔堝尯鍒 鍜屾槸浠涔
    绛旓細鍗曠簿搴鏄痜loat锛屾槸4涓瓧鑺傜殑 鍙岀簿搴鏄痙ouble锛屾槸8涓瓧鑺傜殑 澶у皬閮戒笉涓鏍蜂簡锛岃〃绀虹殑褰撶劧涔熷氨涓嶄竴鏍凤紝鍙岀簿搴﹀彲浠ヨ〃绀鐨勬暟鐨鑼冨洿鍙互澶т竴鐐
  • C璇█涓崟绮惧害,鍙岀簿搴,闀垮弻绮惧害鍒嗗埆鏄粈涔堟剰鎬
    绛旓細鍥介檯鏍囧噯娴偣鏍煎紡锛屽瓧鑺傝秺闀跨簿搴﹁秺楂橈細鍗曠簿搴︽诞鐐(float)锛4涓瓧鑺傞暱 鍙岀簿搴娴偣(dloube)锛8涓瓧鑺傞暱锛岄暱鍙岀簿搴(long double)锛10涓瓧鑺傞暱銆傛牴鎹綘C/C++绋嬪簭鐨勯渶瑕侊紝鍙互瀹氫箟娴偣鍙橀噺锛岀簿搴﹂珮锛屽崰鐨勫瓧鑺備篃澶氥
  • C璇█涓崟绮惧害涓庡弻绮惧害鐨勫尯鍒
    绛旓細鍏跺疄灏辨槸鏈夋晥浣嶆暟涓嶄竴鏍枫娴偣鍨嬪彉閲忓垎涓鍗曠簿搴锛坒loat)銆鍙岀簿搴锛坉ouble)鍜岄暱鍙岀簿搴(long double)3绫汇傚湪Turbo C 涓細姣旂壒锛堜綅锛夋暟 鏈夋晥鏁板瓧 float 32 6-7 double 64 15-16 long double 128 18-19 ANSI C 骞舵湭鍏蜂綋瑙勫畾姣忕绫诲瀷鏁版嵁鐨勯暱搴︺佺簿搴︺佹暟鍊艰寖鍥达紝鏈夌殑绯荤粺灏哾ouble鎵澧炲姞鐨32浣嶅叏...
  • c璇█鏁版嵁绫诲瀷涓鍙岀簿搴鈥濃鍗曠簿搴鈥濇槸浠涔堟剰鎬?
    绛旓細鍙岀簿搴,鍗曠簿搴鎸娴偣鍨嬫暟锛屽弻绮惧害 鍙 double 鍨, 鍗曠簿搴 float 鍨嬨俤ouble 鍨 鐢 64浣2杩涘埗瀛樻斁锛宖loat 鍨 鐢 32浣2杩涘埗瀛樻斁銆傛墍浠ワ紝涓ょ鏁 鐨 鏈澶у拰鏈灏 鏁板艰寖鍥 涓嶅悓锛屾暟鐨勬湁鏁堟暟瀛椾釜鏁颁笉鍚岋紝涔熷氨鏄簿搴︿笉鍚屻俤ouble 鍨 鏈澶ф暟鍊 1.7976931348623158e+308 鏈灏忔鏁版暟鍊 2....
  • c璇█涓浠涔堟槸鍗曠簿搴鍨鍜屽弻绮惧害鍨???鍚勪妇涓緥瀛愩傘傘
    绛旓細鍗曠簿搴﹀瀷鍜屽弻绮惧害鍨嬬殑鍖哄埆鍦ㄤ簬瀹冧滑鐨勭簿纭▼搴︿笉涓鏍凤紝涔熷氨鏄皬鏁伴儴鍒嗙殑鏈夋晥浣嶆暟涓嶄竴鏍枫鍗曠簿搴︽暟锛坒loat鍨嬶級鍦32浣嶈绠楁満涓瓨鍌ㄥ崰鐢4瀛楄妭锛屼篃灏辨槸32浣嶏紝鏈夋晥浣嶆暟涓7浣嶏紝灏忔暟鐐瑰悗6浣嶏紱鍙岀簿搴︽暟锛坉ouble鍨嬶級鍦32浣嶈绠楁満涓瓨鍌ㄥ崰鐢8瀛楄妭锛屼篃灏辨槸64浣嶏紝鏈夋晥浣嶆暟涓16浣嶏紝灏忔暟鐐瑰悗15浣嶃傛瘮濡3....
  • C璇█涓殑 鍗曠簿搴鍨 鍜屽弻绮惧害鍨嬫槸浠涔堟剰鎬
    绛旓細鍗曠簿搴﹀拰鍙岀簿搴鏈澶у尯鍒氨鏄粨鏋滅簿纭埌绗嚑浣嶃傚崟绮惧害鏄繖鏍风殑鏍煎紡锛1浣嶇鍙凤紝8浣嶆寚鏁帮紝23浣嶅皬鏁般傚弻绮惧害鏄1浣嶇鍙凤紝11浣嶆寚鏁帮紝52浣嶅皬鏁般
  • 鍦C璇█閲岄潰,鍗曠簿搴﹀拰鍙岀簿搴鏈変粈涔堝尯鍒拰鑱旂郴?
    绛旓細1銆佸崟绮惧害鍜屽弻绮惧害鏁板肩被鍨嬫渶鏃╁嚭鐜板湪C璇█涓紙姣旇緝閫氱敤鐨勮瑷閲岄潰锛夛紝鍦C璇█涓崟绮惧害绫诲瀷绉颁负娴偣绫诲瀷锛團loat锛夛紝椤惧悕鎬濅箟鏄氳繃娴姩灏忔暟鐐规潵瀹炵幇鏁版嵁鐨勫瓨鍌ㄣ傝繖涓や釜鏁版嵁绫诲瀷鏈鏃╂槸涓轰簡绉戝璁$畻鑰屼骇鐢熺殑锛屼粬鑳藉缁欑瀛﹁绠楁彁渚涜冻澶熼珮鐨勭簿搴︽潵瀛樺偍瀵逛簬绮惧害瑕佹眰姣旇緝楂樼殑鏁板笺2銆佸綋鎴戜滑姣旇緝涓や釜妫嶅瓙鐨勯暱搴...
  • c璇█涓崟绮惧害鍜屽弻绮惧害鏈変粈涔堝尯鍒
    绛旓細鍗曠簿搴锛屼篃灏辨槸 float 锛屽湪 32 浣嶆満鍣ㄤ笂鐢 4 涓瓧鑺傛潵瀛樺偍鐨勶紱鑰鍙岀簿搴閮芥槸鐢 8 涓瓧鑺傛潵瀛樺偍鐨勩傝繖鏄粬浠渶鏈川鐨勫尯鍒傜敱浜庡瓨鍌ㄤ綅涓嶅悓锛屼粬浠兘琛ㄧず鐨勬暟瀛楃殑鑼冨洿涔熶笉鍚岋紝鍏蜂綋鑳借〃绀哄澶х殑鑼冨洿锛屾煡涓涓嬫墜鍐屽氨鐭ラ亾浜嗐
  • c璇█涓 long float 鍜宒ouble鏈変粈涔堝尯鍒
    绛旓細涓銆佷富浣撲笉鍚 1銆 long锛氳〃绀轰竴绉嶉暱鏁村瀷鏁版嵁銆2銆乫loat锛氭诞鐐瑰瀷鏁版嵁绫诲瀷 3銆乨ouble锛鍙岀簿搴娴偣鏁版嵁鍨嬨備簩銆佺被鍨嬩笉鍚 1銆 long锛氶粯璁や负鏈夌鍙烽暱鏁村瀷锛屽惈4涓瓧鑺傘2銆乫loat锛氱敤浜庡瓨鍌鍗曠簿搴︽诞鐐规暟鎴栧弻绮惧害娴偣鏁般3銆乨ouble锛氳〃绀哄崄杩涘埗鐨15鎴16浣嶆湁鏁堟暟瀛椼備笁銆佸彇鍊艰寖鍥翠笉鍚 1銆 long锛氬彇鍊艰寖鍥翠负...
  • c璇█涓浠涔堟槸鍗曠簿搴鍨鍜屽弻绮惧害鍨???鍚勪妇涓緥瀛愩傘傘
    绛旓細鍗曠簿搴﹀瀷鍜屽弻绮惧害鍨嬬殑鍖哄埆鍦ㄤ簬瀹冧滑鐨勭簿纭▼搴︿笉涓鏍凤紝涔熷氨鏄皬鏁伴儴鍒嗙殑鏈夋晥浣嶆暟涓嶄竴鏍枫鍗曠簿搴︽暟锛坒loat鍨嬶級鍦32浣嶈绠楁満涓瓨鍌ㄥ崰鐢4瀛楄妭锛屼篃灏辨槸32浣嶏紝鏈夋晥浣嶆暟涓7浣嶏紝灏忔暟鐐瑰悗6浣嶏紱鍙岀簿搴︽暟锛坉ouble鍨嬶級鍦32浣嶈绠楁満涓瓨鍌ㄥ崰鐢8瀛楄妭锛屼篃灏辨槸64浣嶏紝鏈夋晥浣嶆暟涓16浣嶏紝灏忔暟鐐瑰悗15浣嶃傛瘮濡3....
  • 扩展阅读:5.0为啥是双精度 ... 双精度浮点数怎么写 ... 3.0是单精度还是双精度 ... 双精度浮点数怎么输入 ... 怎么判断单双精度 ... 读入一个单精度浮点数 ... 电阻精度1%与5%区别 ... 2.2为什么是双精度 ... 双精度 double 浮点型 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网