PHP 8.4.0 Alpha 4 available for testing

# bcdiv

(PHP 4, PHP 5, PHP 7, PHP 8)

bcdivDivide due numeri a precisione arbitraria

### Descrizione

bcdiv(string `\$primo operando`, string `\$secondo operando`, int `\$precisione` = ?): string

Divide il `primo operando` per il `secondo operando` e restituisce il risultato. Il parametro opzionale `precisione` imposta il numero di cifre dopo il punto decimale nel risultato.

### Esempi

Example #1 esempio di bcdiv()

`<?phpecho bcdiv(105, 6.55957, 3); // 16.007?>`

### User Contributed Notes 4 notes

-1
MM
16 years ago
`Perhaps some one can find useful this function to compute the modular inverse of a integer (extended euclidean algorithm): function invmod(\$a,\$b) { \$n=\$b; \$x=0; \$lx=1; \$y=1; \$ly=0; while (\$b) { \$t=\$b; \$q=bcdiv(\$a,\$b,0); \$b=bcmod(\$a,\$b); \$a=\$t; \$t=\$x; \$x=bcsub(\$lx,bcmod(bcmul(\$q,\$x),\$n)); \$lx=\$t; \$t=\$y; \$y=bcsub(\$ly,bcmod(bcmul(\$q,\$y),\$n)); \$ly=\$t; } if (bccomp(\$lx,0) == -1) \$lx=bcadd(\$lx,\$n); return \$lx; } // verify \$n="2447995268898324993537772139997802321"; \$t="64941057316178801556773346239351236811"; \$m="123456789"; \$i=invmod(\$t,\$n); // (t*m)*inv(t) is m echo bcmod(bcmul(bcmod(bcmul(\$t,\$m),\$n),\$i),\$n) == \$m;`
-8
Anonymous
13 years ago
`The custom bcdiv function listed at the top of this page produces very different results from bcdiv, as it rounds instead of truncating the result. Consider the following:<?phpfunction bcdiv_cust( \$first, \$second, \$scale = 0 ){ \$res = \$first / \$second; return round( \$res, \$scale );}echo bcdiv('1','2','0') . " vs. " bcdiv_cust('1','2','0'); // prints '0 vs. 1'?>`
-10
cristianDOTzuddas]NOSPAM[gmailDOTcom
19 years ago
`Decimal to binary conversion, using BC Math.Note: this function is VERY slow if the decimal number is too big!<?function bc_decbin(\$dec_str) { if (strlen(\$dec_str)>0) { \$bin_str = ''; do { if (((int)\$dec_str[strlen(\$dec_str)-1] % 2) === 0) \$bin_str .= '0'; else \$bin_str .= '1'; \$dec_str = bcdiv(\$dec_str, '2'); } while (\$dec_str!='0'); return strrev(\$bin_str); } else return null;}?>-----Cristianwww.CodeFlower.com`
-13
Gautam
16 years ago
`<?php //converting in to required precision of decimal points\$result= bcdiv(89.99999999997,2.57865741235478,2); echo "\$result"; // 34.90 result with 2 decimal points?>`