久久午夜无码,日日射天天射五月丁香婷婷我来了 ,欧美黑人又长又粗在线视频,午夜天网站

c語(yǔ)言float(C語(yǔ)言中的小數(shù)floatdouble)

c語(yǔ)言float(C語(yǔ)言中的小數(shù)floatdouble)

介子實(shí) 2025-04-15 科技 18 次瀏覽 0個(gè)評(píng)論

小數(shù)分為整數(shù)部分和小數(shù)部分,它們由點(diǎn)號(hào).

分隔,例如 0.0、75.0、4.023、0.27、-937.198 -0.27 等都是合法的小數(shù),這是最常見的小數(shù)形式,我們將它稱為十進(jìn)制形式。

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

C語(yǔ)言同時(shí)支持以上兩種形式的小數(shù)。但是在書寫時(shí),C語(yǔ)言中的指數(shù)形式和數(shù)學(xué)中的指數(shù)形式有所差異。

C語(yǔ)言中小數(shù)的指數(shù)形式為:

aEn 或 aen

a 為尾數(shù)部分,是一個(gè)十進(jìn)制數(shù);n 為指數(shù)部分,是一個(gè)十進(jìn)制整數(shù);E或e

是固定的字符,用于分割尾數(shù)部分和指數(shù)部分。整個(gè)表達(dá)式等價(jià)于 a×10n。

指數(shù)形式的小數(shù)舉例:

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

C語(yǔ)言中常用的小數(shù)有兩種類型,分別是 float 或 double;float 稱為單精度浮點(diǎn)型,double 稱為雙精度浮點(diǎn)型。

不像整數(shù),小數(shù)沒有那么多幺蛾子,小數(shù)的長(zhǎng)度是固定的,float 始終占用4個(gè)字節(jié),double 始終占用8個(gè)字節(jié)。

小數(shù)的輸出

小數(shù)也可以使用 printf 函數(shù)輸出,包括十進(jìn)制形式和指數(shù)形式,它們對(duì)應(yīng)的格式控制符分別是:

%f 以十進(jìn)制形式輸出 float 類型;%lf 以十進(jìn)制形式輸出 double 類型;%e 以指數(shù)形式輸出 float 類型,輸出結(jié)果中的 e 小寫;%E 以指數(shù)形式輸出 float 類型,輸出結(jié)果中的 E 大寫;%le 以指數(shù)形式輸出 double 類型,輸出結(jié)果中的 e 小寫;%lE 以指數(shù)形式輸出 double 類型,輸出結(jié)果中的 E 大寫。

下面的代碼演示了小數(shù)的表示以及輸出:

#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;}

運(yùn)行結(jié)果:a=3.020000e-01b=128.100998c=123.000000d=1.126400E+05e=0.007623f=1.230024

對(duì)代碼的說(shuō)明:1) %f 和 %lf 默認(rèn)保留六位小數(shù),不足六位以 0 補(bǔ)齊,超過(guò)六位按四舍五入截?cái)唷?/p>

2) 將整數(shù)賦值給 float 變量時(shí)會(huì)變成小數(shù)。

3) 以指數(shù)形式輸出小數(shù)時(shí),輸出結(jié)果為科學(xué)計(jì)數(shù)法;也就是說(shuō),尾數(shù)部分的取值為:0 ≤ 尾數(shù) < 10。

4) b 的輸出結(jié)果讓人費(fèi)解,才三位小數(shù),為什么不能精確輸出,而是輸出一個(gè)近似值呢?這和小數(shù)在內(nèi)存中的存儲(chǔ)形式有關(guān),很多簡(jiǎn)單的小數(shù)壓根不能精確存儲(chǔ),所以也就不能精確輸出,我們將在下節(jié)《小數(shù)在內(nèi)存中是如何存儲(chǔ)的,揭秘諾貝爾獎(jiǎng)級(jí)別的設(shè)計(jì)(長(zhǎng)篇神文)》中詳細(xì)講解。

另外,小數(shù)還有一種更加智能的輸出方式,就是使用%g

。%g 會(huì)對(duì)比小數(shù)的十進(jìn)制形式和指數(shù)形式,以最短的方式來(lái)輸出小數(shù),讓輸出結(jié)果更加簡(jiǎn)練。所謂最短,就是輸出結(jié)果占用最少的字符。

%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;}

運(yùn)行結(jié)果:a=1e-05b=3e+07c=12.84d=1.22934

對(duì)各個(gè)小數(shù)的分析:

a 的十進(jìn)制形式是 0.00001,占用七個(gè)字符的位置,a 的指數(shù)形式是 1e-05,占用五個(gè)字符的位置,指數(shù)形式較短,所以以指數(shù)的形式輸出。b 的十進(jìn)制形式是 30000000,占用八個(gè)字符的位置,b 的指數(shù)形式是 3e+07,占用五個(gè)字符的位置,指數(shù)形式較短,所以以指數(shù)的形式輸出。c 的十進(jìn)制形式是 12.84,占用五個(gè)字符的位置,c 的指數(shù)形式是 1.284e+01,占用九個(gè)字符的位置,十進(jìn)制形式較短,所以以十進(jìn)制的形式輸出。d 的十進(jìn)制形式是 1.22934,占用七個(gè)字符的位置,d 的指數(shù)形式是 1.22934e+00,占用十一個(gè)字符的位置,十進(jìn)制形式較短,所以以十進(jìn)制的形式輸出。

讀者需要注意的兩點(diǎn)是:

%g 默認(rèn)最多保留六位有效數(shù)字,包括整數(shù)部分和小數(shù)部分;%f 和 %e 默認(rèn)保留六位小數(shù),只包括小數(shù)部分。%g 不會(huì)在最后強(qiáng)加 0 來(lái)湊夠有效數(shù)字的位數(shù),而 %f 和 %e 會(huì)在最后強(qiáng)加 0 來(lái)湊夠小數(shù)部分的位數(shù)。

總之,%g 要以最短的方式來(lái)輸出小數(shù),并且小數(shù)部分表現(xiàn)很自然,不會(huì)強(qiáng)加零,比 %f 和 %e 更有彈性,這在大部分情況下是符合用戶習(xí)慣的。

除了 %g,還有 %lg、%G、%lG:

%g 和 %lg 分別用來(lái)輸出 float 類型和 double 類型,并且當(dāng)以指數(shù)形式輸出時(shí),e小寫。%G 和 %lG 也分別用來(lái)輸出 float 類型和 double 類型,只是當(dāng)以指數(shù)形式輸出時(shí),E大寫。數(shù)字的后綴

一個(gè)數(shù)字,是有默認(rèn)類型的:對(duì)于整數(shù),默認(rèn)是 int 類型;對(duì)于小數(shù),默認(rèn)是 double 類型。

請(qǐng)看下面的例子:

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

100 和 294 這兩個(gè)數(shù)字默認(rèn)都是 int 類型的,將 100 賦值給 a,必須先從 int 類型轉(zhuǎn)換為 long 類型,而將 294 賦值給 b 就不用轉(zhuǎn)換了。

52.55 和 18.6 這兩個(gè)數(shù)字默認(rèn)都是 double 類型的,將 52.55 賦值給 x,必須先從 double 類型轉(zhuǎn)換為 float 類型,而將 18.6 賦值給 y 就不用轉(zhuǎn)換了。

如果不想讓數(shù)字使用默認(rèn)的類型,那么可以給數(shù)字加上后綴,手動(dòng)指明類型:

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

請(qǐng)看下面的代碼:

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

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

對(duì)于初學(xué)者,很少會(huì)用到數(shù)字的后綴,加不加往往沒有什么區(qū)別,也不影響實(shí)際編程,但是既然學(xué)了C語(yǔ)言,還是要知道這個(gè)知識(shí)點(diǎn)的,萬(wàn)一看到別人的代碼這么用了,而你卻不明白怎么回事,那就尷尬了。

關(guān)于數(shù)據(jù)類型的轉(zhuǎn)換,我們將在《C語(yǔ)言數(shù)據(jù)類型轉(zhuǎn)換》一節(jié)中深入探討。

小數(shù)和整數(shù)相互賦值

在C語(yǔ)言中,整數(shù)和小數(shù)之間可以相互賦值:

將一個(gè)整數(shù)賦值給小數(shù)類型,在小數(shù)點(diǎn)后面加 0 就可以,加幾個(gè)都無(wú)所謂。將一個(gè)小數(shù)賦值給整數(shù)類型,就得把小數(shù)部分丟掉,只能取整數(shù)部分,這會(huì)改變數(shù)字本來(lái)的值。注意是直接丟掉小數(shù)部分,而不是按照四舍五入取近似值。

請(qǐng)看下面的代碼:

#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;}

運(yùn)行結(jié)果:f = 251.000000, w = 19, x = 92, y = 0, z = -87

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

轉(zhuǎn)載請(qǐng)注明來(lái)自夕逆IT,本文標(biāo)題:《c語(yǔ)言float(C語(yǔ)言中的小數(shù)floatdouble)》

每一天,每一秒,你所做的決定都會(huì)改變你的人生!

發(fā)表評(píng)論

快捷回復(fù):

評(píng)論列表 (暫無(wú)評(píng)論,18人圍觀)參與討論

還沒有評(píng)論,來(lái)說(shuō)兩句吧...

渭源县| 男同女同精品久久AV| 午夜福利国产| 久久久久久国产AV无码| 久久精品蜜芽亚洲国产AV| 99久久无码一区二区| 久久久噜噜噜久久中文字幕| 性欧美最猛| 日韩少妇系列| 伊人久久大香线蕉AV不卡| 亚洲A∨无码一区二区猫咪| 黄每网站最新麻豆视频| 一区精品一区| 伊人久久大杳蕉夜夜揉夜夜爽| 菠萝av| 日韩精品无码免费影视| Jiuse资源综合| 日韩亚洲国产综合| 国产精品香蕉成人网在线观看 | 国产一区日韩精品日本码| 久久99国产综合精品女人| 婷婷去俺也去六月色| 久久电黄色| pop广告优点和不足| 中文字幕有码最近人妻| www.久久cao| 国产精品久久妇女| 欧美精品vs国产传媒| 日韩无码AV天堂一区| 久久进去| 久久精品国产亚洲av麻豆导航| 欧美成人精品高清av视频| 久久精品是国产视频| 濮阳市| 久久精品国产专区| 亚洲无码无线视频| 国产色理论| 亚州精品无码一区二区在线一| yjizz视频国产网站在线播放| 欧美爆乳免费看| 国产亚洲AV片一区二区三区|