一、簡介
我要實現這樣一個表達式
z=總獎金
n=總名數
i=自己的排民
((n-i+1)/(1+2+3+…n))*z
這是一個分配獎金的式子。我試著用php的bc函數進行操作發現以下兩種寫法得出不一樣的結果
表達式1: a r r [ arr[ arr[i]=bcmul(bcdiv((51- i ) , i), i),num,2), r e w a r d [ ′ L e a d e r b o a r d ′ ] , 0 ) ; 表 達 式 2 : reward['Leaderboard'],0); 表達式2: reward[′Leaderboard′],0);表達式2:arr[ i ] = b c m u l ( b c d i v ( i]=bcmul(bcdiv( i]=bcmul(bcdiv(reward[‘Leaderboard'], n u m , 2 ) , ( 51 − num,2),(51- num,2),(51−i),0);
二、現象
1.我代碼
//根據時間計算排名獎勵
public function calculateTheReward($dateStr="2021-04-12 00:00:00"){
$reward=Login::table('dailyReward')->where(['dateStr'=>$dateStr])->find()->toArray();
$arr=[];
$num=1275;
for ($i=1;$i=50;$i++){
$arr[$i]=bcmul(bcdiv($reward['Leaderboard'],$num,2),(51-$i),0);//bcmul(bcdiv((51-$i),$num,2),$reward['Leaderboard'],0);
}
print_r($arr);die;
}
用表達式1得出結果:

用表達式2得出以下結果:

到此這篇關于php bcdiv和bcmul 函數的怪異現象的文章就介紹到這了,更多相關php bcdiv和bcmul 函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 正則表達式之零寬斷言實例詳解【基于PHP】
- 詳解各種PHP函數漏洞
- PHP危險函數禁用深入詳解
- php中使用array_filter()函數過濾數組實例講解
- php array_map()函數實例用法
- PHP執行系統命令函數實例講解
- PHP超級全局變量、魔術變量和魔術函數匯總整理
- python如何調用php文件中的函數詳解
- PHP中斷言函數的使用詳解