我很疑惑浮點數不返回小數點。代碼:浮點問題:它不返回小數點
float max_stops;
int maxBellows = 330;
int lensFocal = 135;
max_stops = (maxBellows/lensFocal);
返回2.0而不是2.44。
你能幫我解決這個問題嗎?
我很疑惑浮點數不返回小數點。代碼:浮點問題:它不返回小數點
float max_stops;
int maxBellows = 330;
int lensFocal = 135;
max_stops = (maxBellows/lensFocal);
返回2.0而不是2.44。
你能幫我解決這個問題嗎?
鑄造maxBellows
和lensFocal
浮動。由於它們都是整數,因此maxBellows/lensFocal
會返回一個int值,然後在分配給max_stops
時將其轉換爲浮動值。應該將至少一個maxBellows
和lensFocal
轉換爲浮點數。
一個int除以int產生一個int。
使其中一個操作數成爲浮點數,例如
max_stops = ((float)maxBellows/lensFocal);
兩個int的/運算符返回一個int。 您需要通過135.0分或鑄造變量浮動或任何
你的問題不在於float
但int
- 這maxBellows/lensFocal
是二int
值的一個部門,這意味着它將有一個int
因此,無論不管該結果是否被置入float
變量。爲了得到一個float
結果,你必須計算前投一個操作數到float
:
max_stops = maxBellows/(float)lensFocal;
嘗試這些:
max_stops = ((float)maxBellows/lensFocal);
or
max_stops = (maxBellows/(float) lensFocal);
謝謝,這解決了這個問題! – koenbro 2010-12-19 20:15:59
@koenbro你可以接受這個答案:)'謝謝,這解決了它! ' – 2010-12-19 20:17:07