Ⅰ c語言中單精度和雙精度是什麼
單精度和雙精度是這對浮點運算來說的,也就是通常說的小數,單精度浮點最少有小數點後6位,雙精度至少是小數點後10位,應為編譯器或者平台不同說以小數點後面多少位是不同的,當是C語音已經規定了小數點後幾位最小的值,最大有多少要看具體的系統來定
Ⅱ C語言中單精度浮點數和雙精度分別如何表示有什麼差別
十進制要轉2進制運算,再轉回十進制輸出,所以有截斷誤差。float有效數字精度為7位。sy是double,要用格式%lfⅢ C語言雙精度的格式符是%le還是%lf
都可以,只是輸出形式有所不同,%lf是以普通的浮點數的方式輸出,而%le是以科學計數法的形式輸出。
例如:
int main()
{
double n;
scanf("%lf",&n);
printf("浮點數的方式%lf 科學計數法的方式%le",n,n);
return 0;
}
輸入:123.4556666
浮點數的方式123.455667 科學計數法的方式1.234557e+002
(3)c語言中雙精度的表示擴展閱讀:
單精度浮點數(float)與雙精度浮點數(double)的區別如下:
1,在內存中佔有的位元組數不同
單精度浮點數在機內佔4個位元組
雙精度浮點數在機內佔8個位元組
2,有效數字位數不同
單精度浮點數有效數字7位
雙精度浮點數有效數字16位
3,所能表示數的范圍不同
單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38
雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
4,在程序中處理速度不同
一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。
參考資料來源:網路-雙精度浮點數
Ⅳ C語言里 單精度型與雙精度型怎麼表示是什麼樣子
單精度是float
雙精度是double
都是浮點型,所謂浮點就是只能表示近似值,不能表示准確值,最後的幾位小數是不準確的。
如:
#include<stdio.h>
void main()
{
double a=2.9999999;
printf("%f ",a);
a=2.99999998;
printf("%f ",a);
a=2.99999997;
printf("%f ",a);
a=2.99999996;
printf("%f ",a);
a=2.99999995;
printf("%f ",a);
printf("%\n ");
//輸出結果都是3.000000
a=2.9999949;
printf("%f ",a);
a=2.9999948;
printf("%f ",a);
a=2.9999947;
printf("%f ",a);
a=2.9999946;
printf("%f ",a);
//輸出結果都是2.999995
}
Ⅳ c語言中什麼是單精度型和雙精度型各舉個例子。。。
單精度型和雙精度型的區別在於它們的精確程度不一樣,也就是小數部分的有效位數不一樣。
單精度數(float型)在32位計算機中存儲佔用4位元組,也就是32位,有效位數為7位,小數點後6位;雙精度數(double型)在32位計算機中存儲佔用8位元組,也就是64位,有效位數為16位,小數點後15位。
比如3.1415926535897932384這個小數,如果定義成float型,那麼只會留下小數點後5位,也就是3.141592,如果定義成double型,那麼只會留下小數點後15位,也就是3.141592653589793。
(5)c語言中雙精度的表示擴展閱讀
計算機的數都是以二進制進行存儲。無論是單精度浮點數還是雙精度浮點數,在計算機上的存儲都遵循IEEE 754規范,使用二進制科學計數法。
二進制科學計數法包含三個部分:符號位,指數位和尾數部分。單精度數的符號位,指數位和尾數部分分別為1,8,23,而雙精度為1,11,52。
而單雙精度中的精度就主要取決於尾數部分的位數。float的尾數尾數為23位,除去全部為0的情況以外,最小為2的-23次方,因此float小數部分只能精確到後面6位。類似的,double尾數位數為52,最小為2的-52次方,因此只能精確到小數點後15位。
Ⅵ C語言中的 單精度型 和雙精度型是什麼意思
單精度和雙精度最大區別就是結果精確到第幾位。
單精度是這樣的格式,1位符號,8位指數,23位小數。
Ⅶ C語言中單雙精度數表示什麼意思
就是個小數點後有效數字的問題
精度么
小數越多越精確
Ⅷ 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進行定義。
實型常量在一般的微型集中佔用4個位元組,一般形式或者指數形式,數值范圍都是-1038~1038,有效數字是7位。
浮點型數據又分為單精度型(float)和雙精度型(double)兩種。
1、單(float):佔用比特數32,有效數位6-7,數值范圍(-3.4e-38~3.4e+38)
2、雙(double):佔用比特數64,有效數位15-16,數值范圍(-1.7e-308~1.7e+308)
(10)c語言中雙精度的表示擴展閱讀
c語言中,數據類型分為整形、實型和指針類型(以下內容均表示在32位操作系統中):
其中整形分為char,shortint,longint,longlong,各種類型的使用,前面都可以加上unsigned表示無符號char字元類型,表示的大小為-128~127,大小為一個位元組;
其中0-127被編為ASCⅡ碼shortint短整形-65536~655352個位元組longint整形-20億多~20億多4個位元組longlong長整型8個位元組longint通常寫為int代表的是CPU字長;
在32為操作系統中cpu的字長是32位,即4個位元組實行(浮點型)分為float和double:float6~7位有效數字4個位元組double15~16位有效數字8個位元組在現代CPU中,有一個協處理器專門進行浮點數的運算;
然後根據類型進行精度截取指針類型32位無符號整數,即unsignedint,但是它只能表示內存中一個比特的空間的編號註:32位CPU的內存定址范圍是從32個0到32個1,總計4GB,所以,32位操作系統最高只支持4G內存。