2010-07-17 61 views
12

我將19/5除以我已使用19/5但我無法獲得剩餘的只有僅從使用PHP的分部獲得剩餘部分

我該如何得到它。

感謝 讓

+8

爲什麼19%5沒有返回你之後的東西 - 這應該返回4. – 2010-07-17 19:37:24

+0

返回四捨五入的值,即4 – X10nD 2010-07-17 19:39:55

+3

@Jean:但這正是19除以5的剩餘部分。此外,爲什麼你回滾我的編輯你的錯字? – BoltClock 2010-07-17 19:40:28

回答

17

請嘗試它 -

$tempMod = (float)($x/$y); 
    $tempMod = ($tempMod - (int)$tempMod)*$y; 
+0

-1 OP想要PHP,而不是C或者Java或者其他語言。 – BoltClock 2010-07-17 19:37:44

+5

但是它的一個邏輯:( – Sadat 2010-07-17 19:41:07

+2

感謝編輯。我撤銷了我的downvote。 – BoltClock 2010-07-17 19:44:06

60
echo 19 % 5; 

應該返回4,這是的19/5(3 REM 4) 沒有必要使用剩餘地板,因爲模數運算的結果總是一個整數值。

如果你想在剩餘浮點值的工作時,那麼PHP也有FMOD()函數:

echo fmod(19,5.5); 

編輯

如果你想其餘爲十進制:

要麼

echo 19/5 - floor(19/5); 

echo (19 % 5)/5 

都將返回0.8

+0

我只需要十進制值 – X10nD 2010-07-17 19:42:11

+2

爲了記錄,最後提到的技術是最快的,因爲執行的浮點運算更少。 – mattbasta 2010-07-21 02:44:19

+0

感謝,它太棒了! – 2014-07-04 04:59:58

4

取決於你所使用的語言,%未必是模運算符。我假設你使用PHP,在這種情況下,它是%

從我所看到的,沒有必要使用整數模數floor(),它將始終返回一個整數。你可以安全地刪除它。

對我來說,它看起來不像是給你地獄的數學,而是它周圍的代碼。你需要發佈更多的代碼;你列出的代碼很好。

編輯:

你不是找餘,你要尋找的遺留十進制值。它沒有名字。

$leftover = 19/5; 
$leftover = $leftover - floor($leftover); 

這應該是你在找什麼。

+0

我只需要十進制的值 – X10nD 2010-07-17 19:41:33

+0

它被稱爲分數。 – aross 2014-12-16 14:07:27

相關問題