我在C++中使用的代碼是:浮點變量不存儲小數
float y;
y=360/100;
cout<<y;
輸出是3。 甚至,如果我不輸出y,而是將其用於一個函數像左( y),取值爲3而不是3.6。但是,如果我定義y = 360.0/100,它工作正常。
順便說一句,left()是我們的CS教授製作的一個函數。左(x)將方向向左改變x度的角度。基於標誌的包。
我在C++中使用的代碼是:浮點變量不存儲小數
float y;
y=360/100;
cout<<y;
輸出是3。 甚至,如果我不輸出y,而是將其用於一個函數像左( y),取值爲3而不是3.6。但是,如果我定義y = 360.0/100,它工作正常。
順便說一句,left()是我們的CS教授製作的一個函數。左(x)將方向向左改變x度的角度。基於標誌的包。
這是定義語言的方式。您將int
除以int
,因此將執行計算,結果爲int
,給出3
(截斷,而不是舍入)。
然後,您將3
存儲到float
,給出3.0
。
如果您希望使用float
s執行劃分,請至少使參數float
之一(例如, 360f/100
。通過這種方式,他們的其他論點將被轉換爲之前的float
執行除法。
360/100f
會工作得很好,但我認爲儘可能早地說清楚這是一個浮點計算,而不是一個完整的計算。這是人爲的考慮,而不是技術上的考慮。
(注意360.0
實際上是一個double
,雖然使用將正常工作。該司將作爲double
來執行,然後轉換爲一個用於float
分配結果)。
360/100
計算在整數算術之前它分配給float
。
重做到360f/100
是我最喜歡的解決方法。
最後這幾天float
適用於不瞭解現代芯片組工作原理的乳蛋餅食客,女孩和民間人士。改爲使用double
類型 - 可能會更快 - 和360.0/100
。
使用'y = 360f/100;' – Axel
這是一個*整數*除法存儲在一個浮點型變量中。結果是3,無論存儲在哪裏 –
在C和兄弟姐妹(和堂兄弟以及其他遠親,甚至是被收養的孩子)中,整數除法產生一個整數結果。 –