一、列印float型別
- %f來表示float和double型別的數字
- %e來列印指數記數法的浮點數
- 如果系統支持十六進制的浮點數,可以使用a和A分別來代替e和E
- 列印long double型別要使用%Lf或%Le或%La來替代
#include<stdio.h> int D12_1_showf_pt(void) { float aboat = 32000.0; double abet = 2.14e9; long double dip = 5.32e-5; printf("%f can be written %e \n", aboat, aboat); //下一行要求編譯器支持C99或其中的相關特性 printf("And it's %a in hexademical,power of 2 notation\n", aboat); printf("%f can be written %e\n", abet, abet); printf("%Lf can be written %Le\n", dip, dip); return 0; }
運行結果:

二、浮點值的上溢和下溢
- 當計算導致數字過大,超過了當前型別所能表達的范圍時,就會發生
上溢 - 這種行為過去是未定義的,現在會賦值一個
無窮大的值,printf該值的時候會顯示inf或infinity, - 當計算導致數字過大,超過了當前型別所能表達的范圍時,就會發生
下溢 - C語言把損失了型別全精度稱為
低于正常值的浮點值, - C庫已經提供了用于檢查計算是否會產生一個低于正常值的函式,
#include<stdio.h> int D12_2_Floaterr(void) { float a, b; b = 2.0e20 + 1.0; a = b - 2.0e20; printf("%f\n", a); return 0; }
運行顯示:

三、原始碼:
- D12_1_showf_pt.c
- D12_2_Floaterr.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D12_1_showf_pt.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D12_2_Floaterr.c
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流,后臺回復“禮包”獲取Java大資料學習視頻禮包

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/6540.html
標籤:C
下一篇:C 實戰練習題目58
