當前位置:首頁 » 編程語言 » c語言雙精度寫法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言雙精度寫法

發布時間: 2022-08-11 17:55:27

c語言雙精度的寫法問題 c裡面怎麼把1.0寫成雙精度是寫成1.d0嗎

如果要將雙精度常量存入變數中,那麼變數的類型一定要聲明為雙精度,也就是double,如
double i = 1.0;
你的寫法是有問題的,C中帶小數點的數默認是雙精度的,所以你後面的寫法是多餘的,但是
float i = 1.0;
至少會給出警告,需要
float i = 1.0f;

不知道你為什麼要使用雙精度,因為能使用單精度就應該使用單精度,雙精度不是僅僅增加了精度,而且還會增加計算機的運算時間和存儲空間。

應該就這些,希望我說清楚了。

⑵ C語言中用scanf輸入雙精度浮點數

C語言中用scanf輸入雙精度浮點數的源代碼如下

#include <stdio.h>

#include <stdlib.h>

int main()

{

int n, *a, i;

printf("請輸入數組長度:");

scanf("%d", &n);

a = malloc(sizeof(int) * n); /*分配內存*/

printf("請輸入%d個數: ", n);

for(i = 0; i < n; i++)

scanf("%d", a + i);

printf("您輸入的數是: ");

for(i = 0; i < n; i++)

printf("%d ", a[i]);

free(a); /*釋放內存*/

return 0;

}

(2)c語言雙精度寫法擴展閱讀

1、scanf()函數開始每次讀取一個輸入字元,它跳過空白字元直到遇到一個非空白字元。因為它試圖讀取一個整數,所以scanf()期望發現一個數字字元或者一個符號(+或-)。

2、如它發現了一個數字或一個符號,那麼它就保存之並讀取下一個字元。scanf()持續讀取和保存字元直到它遇到一個非數字的字元。如遇到了一個非數字的字元,它就得出結論,它已經講到了整數的尾部。

3、scanf()把這個非數字字元放回輸入。這就意味著程序下一次開始讀取輸入時,它將從前面被放棄的那個非數字字元開始。最後,scanf()計算它讀取到的數字的相應數值,並將該值放到指定的變數中。

⑶ C語言中單精度浮點數和雙精度分別如何表示有什麼差別

C語言中,單精度浮點型為float, 雙精度浮點型為double。

  1. Float為單精度,內存中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且VC++6.0平台中默認顯示是6位有效數字。

  2. double為雙精度,佔8個位元組,有效數位是16位,但在我的電腦且VC++6.0平台中默認顯示同樣是6位有效數字。

二者區別:

  1. 佔用位元組空間不同。
    一個float變數佔用四位元組,一個double類型變數,一般佔用8位元組。

  2. 表示範圍不同。

    float表示範圍為-3.4E-38~3.4E+38。double 表示範圍為-1.7E-308~1.7E+308。

  3. 精度不同。
    float在表示十進制時,有效數字為6到7位。double在表示十進制時,有效數字為15到16位。

  4. 輸入輸出格式不同。
    在C語言中,輸入輸出格式化字元串,float使用%f,而double使用%lf。

⑷ c語言里單精度和雙精度怎麼理解

單精度和雙精度顧名思義是兩種精度的不同劃分,單精度float是保證7位有效數字,double是保證16位有效數字。
例:(float)(10%3)
結果是1.000000即七位有效數字,(後面不一定全是0,計算機可隨機選擇數字,所以整數1不等於float或double的1)
(double)(10%3)
同理結果是:1.XXXXXXXXXX……後面有十五位的有效數字
雖然整數位都是1,但由於有效位數不同,即後面隨機派出的小數可能不同,所以二者理論上不同,實際比較不能用==,要用fabs()<1e-6.

⑸ 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語言中,要使用雙精度浮點型(double)數據該怎樣寫我用的是WinTC整型要寫int main()和%d

#include <stdio.h>

int main(){
double a,b;
scanf("%lld",&a,&b);
printf("%lld\n",a+b);
return 0;
}

用上面的程序測試一下,如果不行的話,把%lld改成%I64d(這里是大寫的i,前面是小寫的L);
不同的編譯器,用的不一樣。。不過大多數兩種都行。

⑺ C語言如何輸入雙精度數據

C語言用scanf()函數輸入雙精度數據時,採用的數據格式參數必須是%lf,如:

doubled;
scanf("%lf",&d);

scanf("%f,%f",&a,&b);不能輸入雙精度數據嗎?

當然不能。主要原因在於double和float類型的大小不同:

  1. double類型數據在內存中存儲佔8位元組(64位),按IEEE754標准存儲,格式為:1位符號位+11位指數位+52位小數位

  2. float類型數據在內存中存儲佔4位元組(32位),按IEEE754標准存儲,格式為:1位符號位+8位指數位+23位小數位

  3. 當輸入數據格式串為%f時,scanf()按float類型將輸入的數據存儲到內存地址中,這時,若再按double類型解釋輸出數據時,數據當然不是用戶輸入的內容了。

⑻ C語言如何輸出雙精度浮點型數據

1.雙精度浮點型數據用%lf輸出。因為double是8個位元組的,float是4個位元組的,%f 的格式就是4個位元組的,而 %lf 就是8個位元組的。 例如:printf("%lf ",x);

2.short 佔用內存空間2個位元組,短整型數據用%d輸出 例如:printf("%d ",a);

例:

#include <stdio.h>

int main()

{double x;

short int a;

printf("%lf",x); // 輸入double型

printf("%d",a); //輸入短整型

return 0;

}

(8)c語言雙精度寫法擴展閱讀:

C語言特有特點

1.C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。

2.C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。

3.不同的變數類型可以用結構體(struct)組合在一起。

4.只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。

5.部份的變數類型可以轉換,例如整型和字元型變數。

6.通過指針(pointer),C語言可以容易的對存儲器進行低級控制。

7.預編譯處理(preprocessor)讓C語言的編譯更具有彈性。

⑼ c語言中什麼是單精度型和雙精度型各舉個例子。。。

單精度型和雙精度型的區別在於它們的精確程度不一樣,也就是小數部分的有效位數不一樣。

單精度數(float型)在32位計算機中存儲佔用4位元組,也就是32位,有效位數為7位,小數點後6位;雙精度數(double型)在32位計算機中存儲佔用8位元組,也就是64位,有效位數為16位,小數點後15位。

比如3.1415926535897932384這個小數,如果定義成float型,那麼只會留下小數點後5位,也就是3.141592,如果定義成double型,那麼只會留下小數點後15位,也就是3.141592653589793。

(9)c語言雙精度寫法擴展閱讀

計算機的數都是以二進制進行存儲。無論是單精度浮點數還是雙精度浮點數,在計算機上的存儲都遵循IEEE 754規范,使用二進制科學計數法。

二進制科學計數法包含三個部分:符號位,指數位和尾數部分。單精度數的符號位,指數位和尾數部分分別為1,8,23,而雙精度為1,11,52。

而單雙精度中的精度就主要取決於尾數部分的位數。float的尾數尾數為23位,除去全部為0的情況以外,最小為2的-23次方,因此float小數部分只能精確到後面6位。類似的,double尾數位數為52,最小為2的-52次方,因此只能精確到小數點後15位。

⑽ C語言雙精度數字

雙精度浮點數(Double)用來表示帶有小數部分的實數,一般用於科學計算,用8個位元組(64位)存儲空間,其數值范圍為1.7E-308~1.7E+308,雙精度浮點數最多有15或16位十進制有效數字,雙精度浮點數的指數用「D」或「d」表示。
雙精度浮點數科學記數法格式 :±aD±c或±ad±c
復制於網路