Bug #10116 Updated: bcpow treats second argument as integer
| From: | jmcastagnetto@php.net | Date: | Tue, 07 Aug 2001 17:21:03 +0000 |
| Subject: | Bug #10116 Updated: bcpow treats second argument as integer | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-62454@lists.php.net to get a copy of this message | ||
ID: 10116
Updated by: jmcastagnetto
Reported By: dan.polansky@seznam.cz
Old Status: Open
Status: Closed
Bug Type: BC math related
Operating System: Windows 98
PHP Version: 4.0.4pl1
New Comment:
This is an issue w/ the bcmath library itself, not a PHP bug. If you look in
ext/bcmath/libbcmath/src/raise.c
you'll see that in the function bc_raise(), the exponent is coherced to a long, and the
comments says:
/* Raise NUM1 to the NUM2 power. The result is placed in RESULT.
Maximum exponent is LONG_MAX. If a NUM2 is not an integer,
only the integer part is used. */
Suggest submitting as a bug to the author of bcmath (if you think it is a bug): philnelson@acm.org
Check also the definition of BC numbers in POSIX, the FAQ for bcmath, and the Unix/Linux command bc
Previous Comments:
------------------------------------------------------------------------
[2001-04-02 09:29:49] dan.polansky@seznam.cz
Function bcpow is supposed to work with arbitrary precision
numbers. However, it seems to treat its second argument
as an integer.
E.g.
echo bcpow(256,0.5);
echo bcpow(256,0.99);
both produce 1. It seems that the second argument is
truncated down to integer value. Either this is a
"feature" and documentation must be changed or it is
a bug of either Windows version or even other versions
of BCMath/PHP.
bcpow(0.5,2); produces 0.25, which is all right.
Regards,
-- Dan
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=10116&edit=1