Re: bug on bc math?
| From: | Laruence | Date: | Mon, 30 Jul 2012 13:52:29 +0000 |
| Subject: | Re: bug on bc math? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-61875@lists.php.net to get a copy of this message | ||
Hi:
I'd like mark this as a doc problem, see the comment of the bcmatch lib:
/* The multiply routine. N2 times N1 is put int PROD with the scale of
the result being MIN(N2 scale+N1 scale, MAX (SCALE, N2 scale, N1 scale)).
*/
void bc_multiply (bc_num n1, bc_num n2, bc_num *prod, int scale TSRMLS_DC)
and
* Here is the full add routine that takes care of negative numbers.
N1 is added to N2 and the result placed into RESULT. SCALE_MIN
is the minimum scale for the result. */
void bc_add (n1, n2, result, scale_min)
thanks
On Mon, Jul 30, 2012 at 8:47 PM, Devis Lucato <devis@lucato.it> wrote:
> Hi,
>
> before raising a bug I was wondering if anyone noticed this odd behavior in
> BC math functions ?
>
> Actual
>
> php -r "echo bcmul('1.1', '9.0', 5);" ==> 9.90
> php -r "bcscale(5); echo bcmul('1.1', '9.0');" ==> 9.90
> php -r "bcscale(5); echo bcadd('8.9', '1.0');" ==> 9.90000
>
>
> Expected
>
> php -r "echo bcmul('1.1', '9.0', 5);" ==> 9.90000
> php -r "bcscale(5); echo bcmul('1.1', '9.0');" ==> 9.90000
> php -r "bcscale(5); echo bcadd('8.9', '1.0');" ==> 9.90000
>
>
> Seen on 5.3 and 5.4.
>
> Looking at
>
> http://git.php.net/?p=php-src.git;a=history;f=ext/bcmath/bcmath.c;h=5dfafa8bd8dbc1703af2ea4452ac2b05b765a619;hb=HEADI
> couldn't see any recent change related to this bug.
>
> Thank you
--
Laruence Xinchen Hui
http://www.laruence.com/