在c語言中如何取乙個數的小數部分

2023-02-23 00:35:01 字數 3730 閱讀 7759

1樓:匿名使用者

用c語言表示:double d = 語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字。

2樓:blackpink_羅捷

兩種表示。

方式:1、定點表示:必須有小數點。

例如:, 123, 。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如: ,123e2, 。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料x的形式為x=其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數,x1為最高有效位),則在計算機中的表示形式為:

一般說來,如果最末位xn= 1,前面各位都為0,則數的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數的絕對值最大,即|x|max=1-2^(-n)。所以定點小數的表示範圍是:

2^(-n)≤|x|≤1 -2^(-n)。

3樓:

我想你的意思是這樣的,a變數為浮點型資料(,想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

4樓:匿名使用者

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:, 123, 。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如: ,123e2, 。

錯誤的寫法:e-5 ,,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

float f1 = 小寫f

float f2 = 大寫f

double d = double型別。

5樓:中國中醫拔罐器

好像有什麼函式吧。

不過一般的思路都是。

double d=;

double m;

m=d-int(d);

printf("m=%"m ) 要幾位就零點幾位。

怎麼將c語言中乙個浮點型資料的整數部分與小數部分提取出來

6樓:多xdl點事

**如下:

#include

int main()。

程式執行結果:

程式設計思路就是輸入乙個浮點數,把這個浮點強轉為整數,c語言強制轉換浮點數為整數的話,會丟失精度,也就是小數部分,再把原來的數減去整數部分,就可以得到小數部分,然後定義變數把相應的部分儲存,列印出來就行了。

c語言中float型資料怎麼 取整數部分演算法 或取小數部分

7樓:捐你妹

一種簡單的辦法是直接強制轉換到int型就是整數部分。

減去這個int型就是小數部分了。

8樓:

float x=,z;

long int y;

取整數部分: y = int) x;

取小數部分: z = x - y;

在c語言中有沒有什麼樣的方法能求出乙個小數的小數部分

9樓:飛飛

a-=(int)a;

(int)a將a強制轉換為正整數,直接捨棄小數部分。

執行上面的a-=(int)a; 得到的a不就是原來的小數部分麼?

我說的明白?

10樓:惠階平

先把這個float型的數強制轉換為int型,再用原來的float數減去這個int數即可,如:

float a= ,int b,c;

b=(int)a;

c=a-b;

c即為所求的數。

怎麼用c語言求乙個陣列中所有數的整數部分和及小數部分和?

11樓:風若遠去何人留

對於任意的浮點數f, c語言規定,將其強制轉換為整型時,(int)f就是其整數部分的值。

根據這個,可以知道小數部分就是f - int)f。

不過,要求整數部分和小數部分和,可以有更簡單的思路,不需要求每個數的小數部分,而是求得所有數的整數部分和後,用所有數的和減去整數部分和,也就是小數部分和了。這樣可以精簡**,提高效率。

演算法流程如下:

1 定義兩個統計變數,儲存整數和以及所有數的和,初始化為0;

2 遍歷陣列,求每個數的整數部分,並累加到整數和。

3 同步計算每個數的和;

4 遍歷結束後,結果相減就是小數和;

5 輸出結果。

float a[10];

int s_int = 0;

float s_float = 0;

int i;

for(i = 0 ;i < 10; i ++scanf("%f", a[i]);輸入10個數for(i = 0; i < 10; i ++s_float -=s_int; /得到小數部分和。

printf("整數部分和為 %d, 小數部分和為%f", s_int, s_float);/輸出。

12樓:匿名使用者

int a[100],i;定義陣列。

int sum1=0;儲存整數和。

float sum2=;儲存小數和。

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

13樓:匿名使用者

演算法思想:每乙個數除以一的商是整數部分,餘數是小數部分。

大概程式如下(未進行除錯)

void main()}

c語言中如何將小數點部分一位一位取出?

14樓:尤永修喻辰

在輸出時,小數點算做一位。a++不能被賦值,程式有誤,應少寫乙個加號,a=a+=5;.十進位制-16在計算機裡是這麼表示的,16的二進位制碼是0000000000010000,若要表示-16,則將16的二進位制碼取反,得到1111111111101111,再將此數加1,得到1111111111110000,111111110000就是-16在計算機記憶體中儲存形式,稱為補碼。

由於%u表示無符號的整數所以第一位不是符號判斷位,所以他會將補碼認為是乙個正整數,所以此二進位制值化為十進位制是4294967280.所以%u表示-16的值為4294967280.

15樓:網友

修改了樓上的**。

t=n*1000 改為 t = n*10000

16樓:

main()

輸出結果應該就跟你要的一樣。

c語言中怎麼把乙個實數分解成整數部分和小數部分

c語言中如何輸入數輸出這個數的字元

從鍵盤輸入乙個字串,輸出小寫字母並統計個數用c語言怎麼寫拜託幫幫忙,int a 10 i,n 0 gets a for i 0 i 如果是0 9,可以使用 i 0 i為輸入的數字 include main 注意不要超過256 c語言裡,輸入乙個字元,輸出乙個數字該怎麼寫?1 首先需要知道bai字元本...

c語言 判斷數的位數,C語言 判斷乙個數的位數

如下 include int main int a,b int i printf 請輸入乙個數字 scanf d a b a for i 0 a 1 i a a 10 printf d是 d位數 n b,i 思路 因為整數除以整數的結果是整數,所以乙個數每除以10,位數就少1,所以可以採用while...

c語言如何判斷數是完數,C語言如何判斷乙個數是完數?

2 然後就可以開始編寫 了,這裡完數的意思就是乙個數等於它的因子之和,比如6的因子為1 2 3,而6剛好是這些數之和。根據完數的定義,程式要輸入乙個數的範圍,接著計算出所選取的整數i的因子,將各因子累加到變數s 若s等於i,則可確認i為完數 3 最後執行查詢,輸入乙個範圍,程式就會自動查詢這個範圍內...