1樓:
直接用(int)後接需要轉換的變數,但是需要強調,轉換方式為去掉二進位制數小數點後部分的數字!
具體如下:
說明:圖中數字都是以二進位制方式儲存的,所以x=1011.0011 0011 0011 0011......b
強制轉換後,去掉小數點後部分數字,所以y=11d;
所以x-y=0.0011 0011 0011 0011.......b =0.1999999......d
所以100(x-y)=19.99999.......d強制轉換後只去掉小數點後部分的數字,所以z=19.
2樓:匿名使用者
注意拼寫- -
lz給出的**並不是直接的轉換,而是float的建構函式形式的初始化。當然,中間經過了轉換,和以下的顯式型別轉換作用相同,都可以達到lz的目的。
典型的c風格轉換為:
float c = (float)a /(float)b;;
典型的c++風格轉換為:
float c = static_cast(a) / static_cast(b);;
前者和c語言相容(注意lz的版本不相容);後者雖然羅嗦,不過清楚,容易通過查詢關鍵字找到轉換處。
當然,由於內建的除法(built-in operator/)對於只要有浮點數參加的運算,會把所有的運算元都轉化為浮點數,所以這樣就可以了:
float c = (float)a / b;;
float c = static_cast(a) / b;。
----
另外 wolinxuebin 錯誤。c是float型別,不表示後面的operator/就是浮點除法,兩者無關。
而且, c = (a * 1.0) / (b * 1.0) 不保險,雖然很少有編譯器會死腦筋到不把*1.
0優化掉,但是萬一沒有優化,效率會大大降低(尤其是對於沒有fpu的機器)。就算這樣使用,直接 c = a * 1.0 / b 就可以了。
====
[原創回答團]
如何將int轉為float並用於浮點計算
3樓:匿名使用者
int -> float 不需要強制轉bai換。duinteger -> float :
integer temp = new integer(100);
float temp1 = new float(temp.floatvalue());
rinehart的答案中有乙個小小
zhi的疏忽,
daofloat是基本型別,版不能賦權給float物件。
4樓:金色潛鳥
這與bai你用的語言有關。
c/c++ 可用 強制du轉換zhi
。例如:
int x=3,y=4;
float z;
z = (float) x / (float) y; // 得 0.75
(若 z=x/y; 則做dao整型除法, 得 0)------
常數 3 是回 int 型,答寫成 3.0f 就是 float 型,寫成 3.0 就是 double 型。
定義的時候是int,要怎麼轉換成float?
5樓:匿名使用者
int a;
有兩種辦法,
自己手動強** float b = (float)a自動強轉,基本上所有語言都是會在混合運算時自動強轉為統一資料型別,統一為最高精度的,所以 a*1.0 或 a/1.
0就可以了:
float b = a*1.0
6樓:匿名使用者
整型/浮點型=浮點型
a=a/1.0
c++中字元型和int型,float,double之間的轉換? 5
7樓:仙人掌的憂傷
c++中資料來型別的轉換
一般源分為隱含轉換和強制轉換兩種bai。
隱含轉換:du算術運算zhi符 關係運算子 邏輯dao運算子賦值運算子等二元運算子要求兩個運算子的型別一致,算術運算關係運算中參與運算的型別不一致時要進行隱含轉換。
支援繼承和重用:在c++現有類的基礎上可以宣告新型別,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程式結構,明確類間關係,並且充分利用已有的類來完成更複雜、深入的開發。
新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
8樓:匿名使用者
c++中資料型別的轉換一般分為隱含轉換和強制轉換兩種;
(1)隱含轉換
算術運算子 關係運內算符 邏輯運算子賦容值運算子等二元運算子要求兩個運算子的型別一致,算術運算 關係運算中參與運算的型別不一致時要進行隱含轉換,原則是將低型別轉化成高型別(型別越高資料精度越高,double>float>unsigned long>long >int>short>char>)這種轉化是電腦自動完成,是安全的,資料精度沒有損失;
注意:邏輯運算子要求草錯書讀是bool型,如不是則系統中地轉換成bool型,非0資料轉換成true,0轉化成false;
(2)強制轉換
一般涉及到將高型別轉化成低型別時使用,不安全,可能在精度的損失,有兩種方法
1型別說明符(表示式)//c++強制轉化符號2(型別說明符)表示式 //c強制轉化符號;
如 float z=7.56;
int a;
a=int(z);或a=(int)z;
9樓:匿名使用者
直接強制轉換不可以嗎?
10樓:孤松獨海
高精度float double會自動轉換,不過也可以(int) 這樣強制轉換,只能高精度向低精度轉換,反之不可以,三者高低排列為double>float>int
11樓:絲煙抹茶
int是整型,float可以小數,double是好像範圍更大,記不清了
mysql中int型的數字怎麼轉換成字串
塔罵德 mysql 數字型別轉換函式 concat cast 1 將int 轉為varchar經常用 concat函式,比如concat 8,0 得到字串 80 2 將varchar 轉為int 用 cast a as signed a為varchar型別的字串。總結 型別轉換和sql server...
he檔案轉換成c語言,hex檔案轉換成C語言
吉祥二進位制 檔案有兩種,一種是文字檔案,一種是程式二進位制檔案,不管哪種檔案都可以用十六進位制編碼來顯示,稱為hex檔案。1 文字hex檔案一般不需要轉成c語言,更多的是程式二進位制檔案,用十六進位制顯示,可以轉換成c語言,一般使用相應的反彙編程式來實現,這方面的工具很多,不同的平臺略有不同。wi...
C 中,如何講CHAR陣列轉換成FLOAT型資料
可使用庫函式strtod const char ptr,char endptr 或atof const char ptr 將char陣列轉換成float型資料。當strtod的第二個引數endptr不為null時,且ptr中含非法字元,則會將非法字元通過endptr返回。include includ...