日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中的小数

發布時間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言中的小数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小數分為整數部分和小數部分,它們由點號.分隔,例如 0.0、78.0、4.023、0.27、-927.148 -0.57 等都是合法的小數,這是最常見的小數形式,我們將它稱為十進制形式。

此外,小數也可以采用指數形式,例如 7.25×102、0.0368×105、100.22×10-2、-27.36×10-3 等。任何小數都可以用指數形式來表示。

C語言同時支持以上兩種形式的小數。但是在書寫時,C語言中的指數形式和數學中的指數形式有所差異。

C語言中小數的指數形式為:

aEn 或 aen

a 為尾數部分,是一個十進制數;n 為指數部分,是一個十進制整數;E或e是固定的字符,用于分割尾數部分和指數部分。整個表達式等價于 a×10n。

指數形式的小數舉例:

2.1E5 = 2.1×105,其中 2.1 是尾數,5 是指數。3.7E-2 = 3.7×10-2,其中 3.7 是尾數,-2 是指數。0.5E7 = 0.5×107,其中 0.5 是尾數,7 是指數。

C語言中常用的小數有兩種類型,分別是 float 或 double;float 稱為單精度浮點型,double 稱為雙精度浮點型。

小數的長度是固定的,float 始終占用4個字節,double 始終占用8個字節。

小數的輸出

小數也可以使用 printf 函數輸出,包括十進制形式和指數形式,它們對應的格式控制符分別是:
%f 以十進制形式輸出 float 類型;

%lf 以十進制形式輸出 double 類型;%e 以指數形式輸出 float 類型,輸出結果中的 e 小寫;%E 以指數形式輸出 float 類型,輸出結果中的 E 大寫;%le 以指數形式輸出 double 類型,輸出結果中的 e 小寫;%lE 以指數形式輸出 double 類型,輸出結果中的 E 大寫。

小數的表示以及輸出:

#include <stdio.h> #include <stdlib.h> int main() {float a = 0.302;float b = 128.101;double c = 123;float d = 112.64E3;double e = 0.7623e-2;float f = 1.23002398;printf("a=%e \nb=%f \nc=%lf \nd=%lE \ne=%lf \nf=%f\n", a, b, c, d, e, f);return 0; }

運行結果:

a=3.020000e-01 b=128.100998 c=123.000000 d=1.126400E+05 e=0.007623 f=1.230024

程序解說:

  • %f 和 %lf 默認保留六位小數,不足六位以 0 補齊,超過六位按四舍五入截斷。

  • 將整數賦值給 float 變量時會變成小數。

  • 以指數形式輸出小數時,輸出結果為科學計數法;也就是說,尾數部分的取值為:0 ≤ 尾數 < 10。

  • b 的輸出結果讓人費解,才三位小數,為什么不能精確輸出,而是輸出一個近似值呢?這和小數在內存中的存儲形式有關,很多簡單的小數壓根不能精確存儲,所以也就不能精確輸出。

  • 另外,小數還有一種更加智能的輸出方式,就是使用%g。%g 會對比小數的十進制形式和指數形式,以最短的方式來輸出小數,讓輸出結果更加簡練。所謂最短,就是輸出結果占用最少的字符。

    %g 使用示例:

    #include <stdio.h> #include <stdlib.h> int main() {float a = 0.00001;float b = 30000000;float c = 12.84;float d = 1.229338455;printf("a=%g \nb=%g \nc=%g \nd=%g\n", a, b, c, d);return 0; }

    運行結果:

    a=1e-05 b=3e+07 c=12.84 d=1.22934

    對各個小數的分析:
    1 . a 的十進制形式是 0.00001,占用七個字符的位置,a 的指數形式是 1e-05,占用五個字符的位置,指數形式較短,所以以指數的形式輸出。

    2 . b 的十進制形式是 30000000,占用八個字符的位置,b 的指數形式是 3e+07,占用五個字符的位置,指數形式較短,所以以指數的形式輸出。

    3 . c 的十進制形式是 12.84,占用五個字符的位置,c 的指數形式是 1.284e+01,占用九個字符的位置,十進制形式較短,所以以十進制的形式輸出。

    4 . d 的十進制形式是 1.22934,占用七個字符的位置,d 的指數形式是 1.22934e+00,占用十一個字符的位置,十進制形式較短,所以以十進制的形式輸出。

    我們需要特別注意:

    %g 默認最多保留六位有效數字,包括整數部分和小數部分;%f 和 %e 默認保留六位小數,只包括小數部分。%g 不會在最后強加 0 來湊夠有效數字的位數,而 %f 和 %e 會在最后強加 0 來湊夠小數部分的位數。

    總之,%g 要以最短的方式來輸出小數,并且小數部分表現很自然,不會強加零,比 %f 和 %e 更有彈性。

    除了 %g,還有 %lg、%G、%lG:
    %g 和 %lg 分別用來輸出 float 類型和 double 類型,并且當以指數形式輸出時,e小寫。
    %G 和 %lG 也分別用來輸出 float 類型和 double 類型,只是當以指數形式輸出時,E大寫。

    數字的后綴

    一個數字,是有默認類型的:對于整數,默認是 int 類型;對于小數,默認是 double 類型。

    示例

    long a = 100; int b = 294;float x = 52.55; double y = 18.6;

    100 和 294 這兩個數字默認都是 int 類型的,將 100 賦值給 a,必須先從 int 類型轉換為 long 類型,而將 294 賦值給 b 就不用轉換了。

    52.55 和 18.6 這兩個數字默認都是 double 類型的,將 52.55 賦值給 x,必須先從 double 類型轉換為 float 類型,而將 18.6 賦值給 y 就不用轉換了。

    如果不想讓數字使用默認的類型,那么可以給數字加上后綴,手動指明類型:

    在整數后面緊跟 l 或者 L(不區分大小寫)表明該數字是 long 類型;在小數后面緊跟 f 或者 F(不區分大小寫)表明該數字是 float 類型。

    請看下面的代碼:

    long a = 100l; int b = 294; short c = 32L;float x = 52.55f; double y = 18.6F; float z = 0.02;

    加上后綴,雖然數字的類型變了,但這并不意味著該數字只能賦值給指定的類型,它仍然能夠賦值給其他的類型,只要進行了一下類型轉換就可以了。

    小數和整數相互賦值

    在C語言中,整數和小數之間可以相互賦值:

    將一個整數賦值給小數類型,在小數點后面加 0 就可以,加幾個都無所謂。將一個小數賦值給整數類型,就得把小數部分丟掉,只能取整數部分,這會改變數字本來的值。注意是直接丟掉小數部分,而不是按照四舍五入取近似值。

    請看下面的代碼:

    #include <stdio.h> int main(){float f = 251;int w = 19.427;int x = 92.78;int y = 0.52;int z = -87.27;printf("f = %f, w = %d, x = %d, y = %d, z = %d\n", f, w, x, y, z);return 0; }

    運行結果:

    f = 251.000000, w = 19, x = 92, y = 0, z = -87

    由于將小數賦值給整數類型時會“失真”,所以編譯器一般會給出警告,讓大家引起注意。

    如果感覺不錯的話請點贊喲!!!

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的C语言中的小数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 青青青视频在线播放 | 国产精品一国产精品 | 久久久国产视频 | 久在线播放 | 国产思思99re99在线观看 | 色在线视频 | 中文字幕精品一区久久久久 | 亚洲av无码一区二区三区观看 | 黄色小视频在线观看免费 | 国产精品性爱在线 | 亚洲成人看片 | 国产懂色av | 女人和拘做爰正片视频 | 亚洲第一成人av | 欧美性生活一区二区 | av毛片观看 | 中文字幕精品视频在线 | 一区在线观看 | 免费观看日韩av | av新天堂| 国产成人无码一区二区在线观看 | 96久久精品 | 日韩最新中文字幕 | 成人自拍视频在线 | 精品国产无码在线 | 欧美a∨亚洲欧美亚洲 | 爆操欧美 | 极品人妻一区二区 | 绿色地狱在线观看 | 国产精品无码一区二区三区三 | 日韩欧美xxx | 国产欧美一区二区精品久久久 | 成人黄色大片 | 中文字幕av播放 | 久久精品一区二区 | 午夜毛片在线 | 欧美巨大另类极品videosbest | 国产一区高清 | 午夜免费激情视频 | 把高贵美妇调教成玩物 | 亚洲男人的天堂在线视频 | 在线天堂一区 | 9l蝌蚪porny中文自拍 | 久久手机免费视频 | 美女毛片在线 | 亚洲顶级毛片 | 午夜两性视频 | 亚洲精品成 | 日本资源在线 | 三级黄色av | 国产三级久久久 | 一区二区三区四区av | 成人午夜免费观看 | 免费日本视频 | 天堂在线一区二区 | av一区二区三区免费观看 | av毛片在线看 | 久久久无码18禁高潮喷水 | aaaaa级少妇高潮大片免费看 | 精品久久一区二区三区 | 91午夜视频在线观看 | 女同一区二区三区 | 亚洲av熟女一区 | 亚洲av无码精品一区二区 | 精品国产一区二区三区久久狼黑人 | 亚洲人成电影网站 | 亚洲欧美另类国产 | 日本人体一区 | 久久精品国产亚洲av麻豆蜜芽 | 日本中出视频 | 天天超碰 | 狠狠撸在线| 黄色小视频国产 | a级片在线免费看 | 两女双腿交缠激烈磨豆腐 | 天天精品视频 | 男人扒女人添高潮视频 | h网址在线观看 | 日韩高清影院 | 国产操比视频 | 91九色丨porny丨国产jk | 嫩模啪啪| 欧美综合网 | 美女福利视频在线 | 欧美日韩一级二级三级 | 国产97视频| 爆操白虎 | 色哟哟精品一区 | 欧美久久视频 | 好男人www在线视频 我们的2018在线观看免费高清 | 成人激情在线视频 | 国产小视频免费 | 四虎永久免费地址 | 国产亚洲欧美在线视频 | 亚洲一区在线电影 | 亚洲一级无毛 | a级在线视频 | 自宅警备员在线观看 | 国产99re|