C語言拆分小數

2021-09-10 04:04:39 字數 2529 閱讀 3603

1樓:匿名使用者

float dat= 1234.5678;

int a;//整數部分

float b;//小數部分a= (int)dat;//a= 1234b= dat - a;//b= 0.5678再用迴圈 a分別對10取餘和取整,餘數便是分離的資料, 整數部分在對10取餘和取整,直到整數小於時為止;

b 就直接乘以10, 在取出整數部分,再用迴圈 ,直到所要的精度

2樓:江偉

這個數是手動輸入的話,不妨以字串形式輸入,然後判斷是否數字字元

不是手動輸入的話,就不斷地求餘數啊。

對小數部分,不妨乘以10,再強制型別轉換成int型,然後求餘。

3樓:匿名使用者

1、如果這個數小,不考慮大數,可以用先列印整數部分,然後列印小數部分的方法。整數部分利用取餘運算得到每位數、然後翻轉。小數部分每次乘以10然後取整。

2、如果考慮大數,運用字元陣列儲存。逐個字元掃瞄,把不為點號的字元輸出。

4樓:

#include

#define max_length 100

int main(int argc, char *ar**)

5樓:匿名使用者

說明一下 double 和float是進過插值計算出來的 所以在計算機中進行計算 不會得到精確結果

除非不做運算來擷取小數字

例如 1.1234 如果1.1234-1 =1.1239999999999...

計算的例子

#include

int main()

getchar();

return 0;

} 字串獲取的例子

#include

int main()

return 0;}

6樓:匿名使用者

先sprinf到乙個字元陣列中. 然後迴圈用atoi轉換.

7樓:匿名使用者

整數沒問題,

while(n)

這樣就能拆成單獨的整數,但是是反序的,輸出需要從後面開始輸出但是小數不可以,建議字串輸入

因為浮點數的儲存是近似的,你可以試驗一下,除了如2的n次方分之幾外,其他的都是近似的

0.5 0.25 0.375等等是準確儲存外,其他的都不是準確儲存你可以試驗0.1的二進位制是多少,是個無限小數理論是這樣,那麼小數的計算就不可能準確的提取出單獨的整數

c語言 為什麼執行沒結果..求大神指導..怎麼修改,,,編寫程式拆分輸入實數的整數部分與小數部分..

8樓:

#include

int main(void)

void splitfloat (double x, double *intpart, double *fracpart)

你的兩個指標都沒指向具體的記憶體空間,往裡面寫內容就非法訪問了。

另外,你的splitfloat函式也沒調。

9樓:郝在益

void splitfloat (double x, double *intpart, double *fracpart);

printf(" ");

scanf("%lf", &x);

在後面新增一句

splitfloat (double x, double *intpart, double *fracpart);就可以 了

請問c語言問題:float型資料轉int,把整數部分和小數部分分開放在兩個int型變數裡,怎麼盡量減小誤差?

10樓:金色潛鳥

float型資料精度只有 有效數字 6-7 位,所以存放12345.53231 時,只能精確到 12345.53。

要存放 12345.53231,可以用 double 或 char s.

double 仍有回 10進製到2進製,2進製回答10進製的誤差問題。

#include

int main()

輸出:a=12345 b=53231

a=12345 b=53231

11樓:匿名使用者

首先定義變數 int a,b ; float c,d然後將c值賦予給a,即a得到c的整數部分

接著用d=c-a,d為c的小數部分

最後確定出你要精確的位數,將d乘以對應的10的n次方,就可以了

12樓:匿名使用者

這個看精度要求,浮點數本身就不是很精確的。如果要求很精確的分離兩者,可

內以從二進位制的定義著容手,float型資料定義如下: 1bit(符號位) 8bits(指數字) 23bits(尾數字)

可以考慮將其轉換為long,再將整數值扣除,從而獲得小數

13樓:匿名使用者

先把整數部分取出來,小數部分嘛,想保留多少位就放大10^n倍就行了

c語言中小數怎麼表示c語言中乙個數的小數如何表示

兩種表示方式 1 定點表示 必須有小數點。例如 0.123,123,123.0。2 指數表示 e或e之前必須有數字,指數必須為整數。例如 12.3e3 123e2,1.23e4。注意 浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精...

如何用c語言表示數的小數次方,如何用c語言表示乙個數的小數次方

用pow 即可 例 求16的平方根,輸出4,double型 include main include include int main 在c語言中怎樣表示乙個數的 n 次方 c語言中計算乙個數的n次方可以用庫函式pow來實現。函式原型 double pow double x,double y 舉例如...

C怎麼拆分字串

string c a b e f string a c.split getvalue 0 tostring trim string b c.split getvalue 1 tostring trim 是這個意思嗎?分割時候,split的依據字元必須是一樣的。你要是這樣寫的話,這個符號不起作用,會傳...