|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10116 bcpow treats second argument as integer
Submitted: 2001-04-02 09:29 UTC Modified: 2001-08-07 14:20 UTC
From: dan dot polansky at seznam dot cz Assigned:
Status: Not a bug Package: BC math related
PHP Version: 4.0.4pl1 OS: Windows 98
Private report: No CVE-ID: None
 [2001-04-02 09:29 UTC] dan dot polansky at seznam dot cz
Function bcpow is supposed to work with arbitrary precision
numbers. However, it seems to treat its second argument
as an integer.


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. 

-- Dan


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2001-08-07 13:21 UTC]
This is an issue w/ the bcmath library itself, not a PHP bug. If you look in


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): 

Check also the definition of BC numbers in POSIX, the FAQ for bcmath, and the Unix/Linux command bc
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Tue Sep 27 19:05:52 2022 UTC