2016-12-24 60 views
-1

我需要做一些數學運算。基本上用一個用戶輸入的數字除以64,然後乘以64,但爲了正常工作,需要在乘以之前完全去除小數。刪除C中的所有小數

例子:

150 is entered 
150/64 = 2.34375 (need it to just be 2) 
2 * 64 = 128 
output = 128 
+1

做整數除法。 '150/64 = 2',然後'2 * 64 = 128'。 –

+5

發佈您的代碼,以便我們可以看到變量聲明。 –

+2

你想*圓*的價值,或*截斷*它?你是否希望它僅用於輸出或用於內部計算? –

回答

1

只要做到這一點。

floor(z/64)*64 [完美的作品正z WRT運算的要求]

由於Meik V調諧提到我顯然應該補充這一點,同樣的事情可以用簡單int鑄造觀察。(僅當值處於INT範圍)當使用負數時,這是可取的。

如果數字太大,可能無法將分割結果存儲在int中,則使用floor。

如果是負數,如-5.6,則需要-5

因此,對於變量Z是雙人和結果將不適合用int ..

if(z<0) z=-(floor(-z)); 
+0

爲什麼downvote? ... – coderredoc

+0

,因爲使用「int」不會使用任何函數。 –

+0

@MeikVtune:檢查鼻子更清楚。謝謝。投給'int'的 – coderredoc

-2

如果你定義輸入變量短,int或長,您將獲得只爲整數部分自由。

int input = 150; 
int output = (input/64) * 64; 
// Now output = 128. 
+0

'char'可能無法保存'150'。此外,該操作不會在'char'或'short'上完成。 – Olaf

+0

噢,謝謝,雖然短小的問題是什麼? – Ariel

+0

@CodingLambdas字符取決於編譯器偏好,在clang或gcc中可以使它有符號或無符號。我再問一遍問題是什麼問題?我只能看到一個數字很小。 – Ariel