2015-11-29 42 views
-1

我有一個數字除以12個月。從Float獲取整數?

我需要將整除的結果作爲整數。

例:

mTblDetailMonth.FieldByName('Target_').asfloat := (MTblDetail.FieldByName('Target_').AsInteger/12); 

MTblDetail.FieldByName('Target_').AsInteger等於20和劃分 ​​,結果是1.666666667

我只需要得到數字1,然後計算浮點十進制數。

+0

你可以只使用DIV,而不是/,它是整數除法。表達式的整型結果將隱式轉換爲浮點型。另請參閱:數學單元中的Floor和Ceil函數。 –

+0

你認爲正確的答案是什麼?你想要一個整數x使得x * 12 = 20? –

+0

或者你想將值分成整數和小數部分?你將如何處理這些值? –

回答

3

你的問題不是很清楚,所以這裏的兩個備選方案:

,因爲它是書面的回答你的問題(假設整數變量years和浮點型變量remainder) 使用trunc得到的整數部分除法結果

years := trunc(MTblDetail.FieldByName('Target_').AsInteger/12); // returns 1 
remainder := MTblDetail.FieldByName('Target_').AsInteger/12 - years; // returns 0.6666... 

既然你談了幾個月,也許你想知道'歲月'和'月'是整數。 如果是這樣,使用divmod運營商:

years := MTblDetail.FieldByName('Target_').AsInteger div 12 ; // returns 1 
months := MTblDetail.FieldByName('Target_').AsInteger mod 12 ; // returns 8 
+0

優秀完成(Y)。謝謝 – Yahia