當'x'
和'y'
都是int時,我必須將方程a = x * 9/y
的輸出設置爲浮點型。例如x=64 y= 227
但是當輸入到公式時,我得到的是2
而不是十進制答案。如何將int整型應答轉換爲浮點數
我怎麼有它編碼:
int y = 227;
int x = 64;
Float a;
a = x * 9/y;
當'x'
和'y'
都是int時,我必須將方程a = x * 9/y
的輸出設置爲浮點型。例如x=64 y= 227
但是當輸入到公式時,我得到的是2
而不是十進制答案。如何將int整型應答轉換爲浮點數
我怎麼有它編碼:
int y = 227;
int x = 64;
Float a;
a = x * 9/y;
你需要的類型轉換爲float:
a = (float)x * (float)9/(float)y;
不知道你用的是什麼語言,但我對於寫C語言的。
我所做的就是所謂的顯式鑄造。
顯式鑄造(給定轉換)的數據類型具有更高的優先級,然後自動轉換。
Syntax:
(data_type) operand
凡操作數可以是可變的或短語。
@yBee回答了什麼。
他正在使用的概念隱式鑄造通過將9
更改爲9.0f
在你的表達(x * 9.0f)
成爲浮動和浮動浮動int再給浮動。
要理解這一點,你需要知道自動型鑄造:
隱式轉換(自動轉換)的工作方式是長度爲較小的數據類型的變量(操作)(比數據第二個變量的類型)(操作數),內部轉換爲具有更長數字長度的數據類型的變量。這聽起來可能混淆,但這裏有一個例子:
short int
- >int
- >unsigned int
- >long int
- >unsigned long int
- >float
- >double
- >long double
什麼@Alexei Levenkov做的是?
使用這兩種技術。首先通過顯式投射將x
轉換爲浮點,然後由於隱式投射而發生浮點計算。
其實這兩個答案都比我的回答更好。
一個數應該是浮點型的,以便有效鑄造:a = x * 9.0f/y;
嗨,我認爲只有'9f'就夠了。 +1 ..很好回答。也寫理由這樣做。 – 2013-02-26 08:08:42
@GrijeshChauhan:我改正了,因爲C語言不允許9f。我們不知道它是什麼語言。 – 2013-02-26 08:10:17
是的你是對的。順便說一句,我解釋你的答案但信貸給你。 – 2013-02-26 08:28:28
在大多數語言具有類型「浮動」的表達的至少一種元素將使float類型的整體表達:
a = x * 9.0/y;
您也可以投一些mebers明確(取決於languge語法):
a = (Float)x * 9/y;
注意,如果操作的優先級不TH相同(即+和*在同一個表達式中),你可能會密切關注你想要表演的內容。下面的表達式都可能產生不同的結果(如第一個會做x/9
爲整數,然後纔將它轉換爲「浮動」):
a = x/9 + (Float)y;
a = (Float)x/9 + y;
+1對於'操作的優先級不一樣'點。問題的最佳答案。 – 2013-02-26 08:34:03
好,得到小數的答案,當你用一個整數設備的任何數量的數字,右側必須是浮點數或雙精度數。是這樣的
10/3 = 3
10/3.0 = 3.34
明白了嗎?
你的情況,你可以做的是,
int y = 227;
int x = 64;
Float a = x * 9/(float)y;
一個簡單的方法是用1.0只乘最終結果。這會爲你轉換它。
什麼編程語言? – 2013-02-26 08:06:47
是的Mike指定你的語言。添加標籤。 – 2013-02-26 08:11:32
@Mike Hirt,如果你閱讀下面的答案,你會感到困惑。因此只要做到這一點浮點數a = x * 9 /(float)y;因爲得到一個十進制結果,右側必須是雙精度或浮點數。在你的情況下,使右側小數,除以(浮點數)y – 2013-02-26 08:49:18