㈠ c語言中整型和浮點型混合運算的結果是什麼類型
c語言中整型和浮點型混合運算的結果為double型(雙精度浮點類型)。
c語言中如果一個運算符兩邊的運算數類型不同,先要將其轉換為相同的類型,即較低類型轉換為較高類型,然後再參加運算,轉換規則:float(浮點型)轉化為double(雙精度浮點類型)、int(整型)轉為unsigned(無符號整型)轉為long(長整型)轉為(雙精度浮點類型)。
因此,c語言中整型和浮點型混合運算,只能是整型和浮點型同時強制轉換為相同的double型(雙精度浮點類型)。如兩個float型數參加運算,雖然它們類型相同,但仍要先轉成double型再進行運算,結果亦為double型。
(1)浮點乘整形擴展閱讀:
在C語言中,自動類型轉換遵循以下規則:
1、若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
2、轉換按數據長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。若兩種類型的位元組數不同,轉換成位元組數高的類型。若兩種類型的位元組數相同,且一種有符號,一種無符號,則轉換成無符號類型。
3、所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。
4、char型和short型參與運算時,必須先轉換成int型。
5、在賦值運算中,賦值號兩邊量的數據類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。如果右邊量的數據類型長度比左邊長時,將丟失一部分數據,這樣會降低精度,丟失的部分按四捨五入向前舍入。
㈡ 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語言整型乘以浮點數問題
可以
在C語言中,不同數據類型的量混合運算時,會發生數據類型的自動轉換,在由編譯系統自動完成。自動轉換遵循以下規則:
1.若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
2.轉換按數據長度增加的方向進行,以保證精度不降低。
所以整數可以和浮點數計算。
參考代碼:
#include<stdio.h>
intmain()
{
inta=10;
doubles=0.01;
printf("%.2lf ",s*a);
return0;
}
/*
運行結果:
0.10
*/
㈣ 浮點數與整形數相乘
輸入586.98 但a的實際值可能是586.97999
而(int)是強制類型轉換 直接取整數 而不是四捨五入
㈤ 浮點數乘以100000可以等於整形數么
樓主你好!根據你的描述,讓我來給你回答!
這個是可以的,浮點數等於整型數,會強制類型轉換的,所以可以等。
希望能幫到你,如果滿意,請記得採納哦~~~
㈥ C語言中:字元型*(乘)整數型=什麼型;字元型+(加)浮點型=什麼型;double-(減)flost=什麼型
C語言里,字元型只不過是一種范圍較小的int型,所以計算時按照從范圍從小到大的順序進行類型轉換,也就是說
char * int = int
char + float = float
至於 double - float ,按相同的原則,先自動把float轉換為double型,然後再做減法。
㈦ C語言整數能和浮點數相乘嗎
可以的
例如:int a=2;float b=4;
double c=0;
c=a*b;//整數和小數相乘會轉化的double的
int d=0;
d=(int)(a*b);//強制轉化整數,不然會報錯的
㈧ c語言整型和浮點乘法
#include
intmain(void)
{
inta;//整數型
floatb;//浮點型
floatc;//計算結果
//乘法計算
a=50;
b=25.5
c=a*c;
//輸出一個浮點數
printf("%f",c);
return0;
{