當前位置:首頁 » 編程語言 » c語言float轉int

c語言float轉int

發布時間: 2024-09-19 13:42:51

① C語言中float型轉換成int型是什麼規則

#include<stdio.h>

#include<math.h>

int main()

{

int i;

int i2;

int siz;

float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};

siz=sizeof(P);//列印出數組P的位元組數

printf("sizeof=%d ",siz);

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

{

printf("P[intp]=%d ",floor(P[i]));//列印出P數組的每一個元賣殲素值,以int型顯示

}

for(i2=0;i2<中行沖14;i2++)

{

printf("P[floatp]=%f ",P[i2]);//列印出P數組的每一個元素值,以float型顯示

}

}

好帶瞎像VC++6.0運行的結果只有強制轉換有用,不知道是不是我寫的語句有問題

② 請問C語言問題:float型數據轉int,把整數部分和小數部分分開放在兩個int型變數里,怎麼盡量減小誤差

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

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

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

#include <stdio.h>

int main(){

double x = 12345.53231;

int a,b;char s[30];

int i;a = (int) x; // a 沒問題

b = (x-a) * 100000; // 這里要假定取多少位小數

printf("a=%d b=%d\n",a,b);

sprintf(s,"%15.5lf",x); //用這個方法轉字元串。

// 當然最好是一開始聲明 char s[30]=「12345.53231」;就不必轉化。

sscanf(s,"%d.%d",&a,&b); // 注意 格式里 有個小數點符號

printf("a=%d b=%d\n",a,b);

}

輸出:

a=12345 b=53231

a=12345 b=53231

熱點內容
為什麼安卓手機進不去王者榮耀 發布:2025-03-29 18:53:08 瀏覽:429
孩子學習編程好處 發布:2025-03-29 18:48:24 瀏覽:425
c是高級程序設計語言的一種 發布:2025-03-29 18:44:38 瀏覽:385
王者榮耀安卓服和蘋果排位哪個好 發布:2025-03-29 18:14:54 瀏覽:932
什麼是微信緩存文件 發布:2025-03-29 18:13:32 瀏覽:463
怎麼修改安卓手機使用信息 發布:2025-03-29 18:03:51 瀏覽:231
網站後台更新緩存 發布:2025-03-29 18:03:46 瀏覽:142
榮耀相冊密碼在哪裡設置 發布:2025-03-29 18:02:56 瀏覽:450
活動記錄編譯 發布:2025-03-29 17:59:04 瀏覽:455
安卓系統視頻原文件在哪裡 發布:2025-03-29 17:46:00 瀏覽:845