Ⅰ 計算機c語言的單雙精度是什麼啊,怎麼區別啊
比如,11.234567這個就是
單精度
,單精度
有效位數
是前七位,當然不包括
小數點
,但是小數點後面默認保留6位
小數
,如果不夠6位用0填充。
12.23456789446547這個就是雙精度,雙精度默認保留14位小數。
雙精度比單精度表示浮點型(也就是小數)更精確一些,比如在需要
高精度
數據的地方就可以用雙精度。其它的前面都說了
都很對。
Ⅱ C語言中數據的精度是什麼意思
c語言中:
float浮點數7位有效數字。
double雙精度數16位有效數字。
單精度數的尾數用23位存儲,加上默認的小數
點前的1位1,2^(23+1) = 16777216。因為 10^7 < 16777216 <
10^8,所以說單精度浮點數的有效位數是7位。 雙精度的尾數用52位存儲,2^(52+1) = 9007199254740992,10^16
< 9007199254740992 < 10^17,所以雙精度的有效位數是16位
單精度浮點數的實際有效精度為24
位二進制,這相當於 24*log102≈7.2
位10進制的精度,所以平時我們說「單精度浮點數具有7位精度」。(精度的理解:當從1.000...02變化為1.000...12時,變動范圍為
2-23,考慮到因為四捨五入而得到的1倍精度提高,所以單精度浮點數可以反映2-24的數值變化,即24位二進制精度)
浮點數7位有效數字。(應該是單精度數)
雙精度數16位有效數字。
浮點數取值范圍:
負數取值范圍為 -3.4028235E+38 到 -1.401298E-45,正數取值范圍為 1.401298E-45 到 3.4028235E+38。
雙精度數取值范圍:
負值取值范圍-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范圍為 4.94065645841246544E-324 到 1.79769313486231570E+308。
所以精度是測量值與真值的接近程度。包含精密度和准確度兩個方面精度的等級是以它的允許誤差占表盤刻度值的百分數來劃分的,其精度等級數越大允許誤差占表盤刻度極限值越大。量程越大,同樣精度等級的,它測得壓力值的絕對值允許誤差越大。
精度
經常使用的的精度為 2.5 、1.5 級,如果是1.0和0.5級的屬於高精度,現在有的數字已經達到0.25級。
Ⅲ c語言數據類型中「雙精度」「單精度」是什麼意思
1、單精度和雙精度都指浮點數,就是帶小數點的數
2、單精度數的有效位數比較少,7位左右,雙精度的在幾十位。
3、單精度定義是用float
4、雙精度定義是用double
比如:
#include
main(){
float
pi_f
=
m_pi;
double
pi_d
=
m_pi;
printf("%e,",pi_f);
printf("%e",pi_d);
}
Ⅳ C語言中單雙精度數表示什麼意思
c語言中單精度數和雙精度數的本質區別在於數據類型所佔的內存位元組,浮點數,在C語言中使用的是IEEE754浮點數編碼,該標准規定了單精度浮點數和雙精度浮點數所佔的內存位元組,一般單精度數佔用4個位元組,雙精度數佔用8個位元組,擴展雙精度數佔用80個位元組。IEEE754具體的標准如下:
格式 長度 符號位 指數位 尾數位 有效位數 指數偏移 尾數說明
單精度 32 1 8 23 24 127 有一位隱含位
雙精度 64 1 11 52 53 1023 有一位隱含位
擴展雙精度 80 1 15 64 64 16383 沒有隱含位
Ⅳ C語言什麼是單精度、雙精度
C語言中用float描述單精度,用double描述雙精度。為什麼要把數據分成單雙精度呢?我們生活中通常用到數據時會說精確到小數點後幾位,計算機存儲數據時精確度越高,佔用內存空間越大,根據精確度的需要,如果你選用單精度數據,是說你讓電腦用較少的空間存放數據,表現為精確到小數點後5位,並且第五個小數還是四捨五入得到的,如果你用雙精度定義數據,是說你用較多的空間存放同一個數,表現為小數點後較多的位數,同樣最後一位仍然是四捨五入得到。這就是區分單雙精度的原因。
Ⅵ C語言的單精度與雙精度如何區別
其實就是有效位數不一樣。
浮點型變數分為單精度(float)、雙精度(double)和長雙精度(longdouble)3類。在TurboC中:
比特(位)數有效數字
float326-7
double6415-16
longdouble12818-19
ANSIC並未具體規定每種類型數據的長度、精度、數值范圍,有的系統將double所增加的32位全用於存放小數部分,這樣可以增加數值的有效范圍,減少舍入誤差。有的系統則將所增加的位(bit)一部分存放指數部分,這樣可以擴大數值范圍
Ⅶ 什麼是C語言中的精度,與位數有什麼差別
?
別把計算機中的位和數學中位的概念混淆了
6位和16位精度指的是數學中小數點後6位和小數點後16位
符號位指的是計算機中的位,即變數的第一個位(BIT)代表正數還是負數
Ⅷ C語言中的單雙精度具體指什麼
簡單點說就是單精度的小數位沒有雙精度多
Ⅸ c語言中單精度和雙精度是什麼
單精度和雙精度是這對浮點運算來說的,也就是通常說的小數,單精度浮點最少有小數點後6位,雙精度至少是小數點後10位,應為編譯器或者平台不同說以小數點後面多少位是不同的,當是C語音已經規定了小數點後幾位最小的值,最大有多少要看具體的系統來定
Ⅹ c語言中什麼是單精度型和雙精度型各舉個例子。。。
單精度型和雙精度型的區別在於它們的精確程度不一樣,也就是小數部分的有效位數不一樣。
單精度數(float型)在32位計算機中存儲佔用4位元組,也就是32位,有效位數為7位,小數點後6位;雙精度數(double型)在32位計算機中存儲佔用8位元組,也就是64位,有效位數為16位,小數點後15位。
比如3.1415926535897932384這個小數,如果定義成float型,那麼只會留下小數點後5位,也就是3.141592,如果定義成double型,那麼只會留下小數點後15位,也就是3.141592653589793。
(10)c語言的精度是啥擴展閱讀
計算機的數都是以二進制進行存儲。無論是單精度浮點數還是雙精度浮點數,在計算機上的存儲都遵循IEEE 754規范,使用二進制科學計數法。
二進制科學計數法包含三個部分:符號位,指數位和尾數部分。單精度數的符號位,指數位和尾數部分分別為1,8,23,而雙精度為1,11,52。
而單雙精度中的精度就主要取決於尾數部分的位數。float的尾數尾數為23位,除去全部為0的情況以外,最小為2的-23次方,因此float小數部分只能精確到後面6位。類似的,double尾數位數為52,最小為2的-52次方,因此只能精確到小數點後15位。