数据类型说明 实型
1 實型常量的表示方法
實數(shù)又稱浮點數(shù),實數(shù)有兩種表示形式。
(1)十進制小數(shù)形式,它由數(shù)字和小數(shù)點組成(注意必須有小數(shù)點)
如:.123(0.123), 123.(123.0)
(2)指數(shù)形式
如:123e3或123E3都代表123*10^3,但注意字母e或E之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。
2 實型變量
2.1 實型數(shù)據(jù)在內(nèi)存中的存放形式
一個實數(shù)數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)與整型數(shù)據(jù)的存儲方式不同,實型數(shù)據(jù)是按指數(shù)形式存儲的,系統(tǒng)把一個實型數(shù)據(jù)分成小數(shù)部分與指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。
如:3.14159 的存放形式如下
+ .314159 1
第一部分符號‘+’表示符號 +
第二部分 .314159 表示小數(shù)部分
第三部分 1 表示指數(shù) 10^1
實際上在計算機中是用二進制數(shù)來表示小數(shù)部分以及用2的冪次來表示指數(shù)部分
在4個字節(jié)(32位)中,究竟用多少位表示小數(shù)部分,多少位來表示指數(shù)部分,標準C并無具體規(guī)定,由各C編譯系統(tǒng)自定,不少C編譯系統(tǒng)以24位表示小數(shù)部分(包括符號)以8位表示指數(shù)部分(包括指數(shù)的符號)小數(shù)部分占的位數(shù)越多,數(shù)的有效數(shù)字就越多精度就越高,指數(shù)部分占的位數(shù)越多,剛能表示的數(shù)值范圍越大。
2.2 實型變量的分類
C實型變量可分為:
單精度(float) 32位 有效數(shù)字 6~7位 數(shù)值范圍 10^-37 ~ 10^38
雙精度(double)64位 有效數(shù)字 15 ~16位 數(shù)值范圍 10^-307 ~ 10^308
長雙精度型(long double)128位 有效數(shù)字 18 ~ 19 位 數(shù)值范圍 10^-4931 ~10^4932
2.3 實型數(shù)據(jù)的舍入誤差
由于實型變量是用有限的存儲單元存儲的,因此能提供的有效數(shù)字總是有限的,在有效位以外的數(shù)字將被舍去,由此可能會產(chǎn)生一些誤差。
看下面的程序
#include <stdio.h>
void main()
{
float a, b;
a = 123456.789e5;
b = a + 20;
printf("%f\n", b);
}
運行的結(jié)果是 12345678848.000000
不是想像是 12345678920
可以看到前8位是準確的,后幾位不是準確的
總結(jié)
- 上一篇: 战略支援部队航海技术助理工程师是干什么的
- 下一篇: 查询功能测试点总结