Ⅰ c語言整型數賦值給浮點型的問題
b=a/2;是這么計算的:a是整型變數,2也是,因此計算被當成整型計算,得到整型結果0,然後發現b是float型的,再將整型結果0進行數據類型轉換賦值給b。因此應當將a/2算式中分子或分母轉換成float型就能正確計算了,比如:b=(float)a/2;或b=a/2.0;或b=a; b/=2;
Ⅱ C語言如何把整型轉換成浮點數
C語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分,能用於你的問題。
2、C/C++中的整數除法運算符「/」本身就有取整功能(int / int),而下面介紹的取整函數返回值是double。整數除法對正數的取整是捨去小數部分,能用於你的問題。不過整數除法對負數的取整結果和使用的C編譯器有關。
3、使用floor函數。floor(x)返回的是小於或等於x的最大整數。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函數。ceil(x)返回的是大於x的最小整數。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函數能用於你的問題。
5、
int b = (int)a;//取整
int c = (int)(a+0.5);//四捨五入
Ⅲ C語言中怎麼把一整型數組變成浮點型數組
#include<stdio.h>
void main()
{
int i[5]={1,2,3,4,5};
float b[5];
int j;
for(j=0;j<5;j++)
b[j]=i[j];
for(j=0;j<5;j++)
printf("%.2f ",b[j]);
}
整型是可以自動轉換為浮點型的 ,這個並不需要去強制轉換
Ⅳ C語音編程,怎樣把整數轉換成雙浮點型
強制類型轉換表達式
----------
形式:(類型名)(表達式〔可以是常量,也可以是含有運算符的表達式)
例(int)3.324=3 (double)(10%3)=1.0
(double)10%3 X---> 10.0%3 %前只能是整型
Ⅳ C語言中,如何將整型變為浮點型。比如int X=123,我要輸出0.123。
double xs=123*0.001 //這樣即可,它會自動完成類型轉換
Ⅵ C語言中有沒有把字元轉型化為 浮點型的函數
C語言中將字元串轉型化為浮點型數據的函數有:atof()
和
strtod()
頭文件:
#include <stdlib.h>
函數原型:
double atof (const char* str);
【參數說明】str 為要轉換的字元串。
【函數說明】atof() 函數會掃描參數str字元串,跳過前面的空白字元(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字元串結束時('\0')才結束轉換,並將結果返回。參數str 字元串可包含正負號、小數點或E(e)來表示指數部分,如123. 456 或123e-2。
【返回值】返回轉換後的浮點數;如果字元串 str 不能被轉換為 double,那麼返回 0.0。
double strtod (const char* str, char** endptr);
【參數說明】str 為要轉換的字元串,endstr 為第一個不能轉換的字元的指針。
【函數說明】strtod() 函數會掃描參數str字元串,跳過前面的空白字元(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,到出現非數字或字元串結束時('\0')才結束轉換,並將結果返回。參數 str 字元串可包含正負號、小數點或E(e)來表示指數部分。如123. 456 或123e-2。
若endptr 不為NULL,則會將遇到的不符合條件而終止的字元指針由 endptr 傳回;若 endptr 為 NULL,則表示該參數無效,或不使用該參數。
【返回值】返回轉換後的浮點型數;若不能轉換或字元串為空,則返回 0.0。
使用 atof( str ) 與使用 strtod(str, NULL) 結果相同。
一般應用方法為:
char str[]="123.45";
double d=atof(str);
printf("%.2lf", d ); //輸出123.45
Ⅶ 請問C語言中如何將int轉換為float
把int
a;轉換為float類型有兩種辦法:
1、手動強制轉換:
float
b
=
(float)a;
//強制轉換
2、自動轉換,基本上所有語言都是會在混合運算時自動強轉為統一數據類型,統一為最高精度的,所以
a*1.0
或
a/1.0就可以:
float
b
=
a*1.0;
//自動轉換
Ⅷ C語言中怎麼將一個整形數組轉化為一個float或者int類型數字比如 int a[5]={1,2,
intconvert(inta[],intn)//n為數組元素個數
{
inti,sum;
for(i=0,sum=0;i<n;i++)
{
sum*=10;
sum+=a[i];
}
returnsum;//將結果返回給指定的整型變數
}