亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法解釋 php 取模結果

無法解釋 php 取模結果

PHP
慕桂英546537 2021-12-24 09:39:16
有人可以解釋一下這里發生了什么嗎?-1 % 7 = 6 https://www.wolframalpha.com/input/?i=-1%257 ...但是echo (-1 % 7)."\n";    // prints -1 WRONGecho fmod(-1,7)."\n";  // prints -1 WRONG我還嘗試了 php.net 中的這些示例,它們都正確返回。echo (5 % 3)."\n";           // prints 2echo (5 % -3)."\n";          // prints 2echo (-5 % 3)."\n";          // prints -2echo (-5 % -3)."\n";         // prints -2PHP 給了我一個我無法解釋 -1%7 的結果。它沒有溢出 int 但我還是嘗試了fmod,但我仍然遇到同樣的問題(即看起來不是這個問題:php modulo return wrong result)
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

如果你想在 PHP 中得到一個負數的真模,你必須做兩次余數運算,第二次在加上你正在做模數的數字之后,使運算的輸入為正:


$a = ((-1 % 7) + 7) % 7;

echo $a;

$a = ((4 % 7) + 7) % 7;

echo $a;

輸出


6

4


查看完整回答
反對 回復 2021-12-24
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

所以,結果 -1 是一個正確的答案。這就是“負余數”。我不是數學專業,我不知道還有另一個有效的答案。我正在尋找非負余數(正常答案)。

原來我可以用gmp_mod它。 https://www.php.net/manual/en/function.gmp-mod.php

這幫助我走上正軌:https : //www.omniccalculator.com/math/modulo


查看完整回答
反對 回復 2021-12-24
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

在 PHP 中,運算符%返回除法的余數,而不是模數。

來自文檔:算術運算符

$a % $b $a 除以$b 的模 余數

和更多:

模運算符 % 的結果與被除數的符號相同——也就是說,$a % $b 的結果將與 $a 的符號相同

因此,如果您想要數學上真正的modulo,則需要添加更多計算,如下面的函數所示:

function modulo( $dividend, $divisor ){
  return ( $dividend % $divisor + $divisor ) % $divisor;
  }


查看完整回答
反對 回復 2021-12-24
  • 3 回答
  • 0 關注
  • 261 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號