好吧,我需要在PHP脚本中做一些计算.我有一个行为错误的表达.
echo 10^(-.01);
Run Code Online (Sandbox Code Playgroud)
产出10
echo 1 / (10^(.01));
Run Code Online (Sandbox Code Playgroud)
输出0
echo bcpow('10', '-0.01') . '<br/>';
Run Code Online (Sandbox Code Playgroud)
输出1
echo bcdiv('1', bcpow('10', '0.01'));
Run Code Online (Sandbox Code Playgroud)
输出1.000 ....
我bcscale(100)用于BCMath计算.
Excel和Wolfram Mathematica给出答案~0,977237.
有什么建议?
有人可以解释一下,如果我应该使用bcpow()而不是pow(),为什么?
据我所知,并非所有的php安装都启用了bcmath.因此,如果我编写一个开源项目,并希望尽可能少的依赖/需求,我宁愿在我的代码中使用pow().
但是使用pow()而不是bcpow()的缺点是什么?
让我说我有
$foo = bcsub(bcdiv(1, 3, 20), 0.00001, 20);
Run Code Online (Sandbox Code Playgroud)
它返回我0.33333333333333333333
如果我有
$foo = bcsub(bcdiv(1, 3, 20), 0.0001, 20);
Run Code Online (Sandbox Code Playgroud)
它返回我0.33323333333333333332
如果我有
$foo = bcsub(0.333333333333333333, 0.00001, 20);
Run Code Online (Sandbox Code Playgroud)
它返回我0.33333333333333331483
如果我有
$foo = bcsub(0.333333333333333333, 0.0001, 20);
Run Code Online (Sandbox Code Playgroud)
它返回我0.33323333333333331482
那么为什么它不能正确地减去,它是浮点数的东西?但只有bcdiv(1,3,20)它才能正常工作
我收到了这个错误
PHP Fatal error: Call to undefined function bccomp()
有谁知道如何解决它?
--------------------编辑------------
我使用的是Ubuntu,我使用APT-GET命令安装了PHP-5.6
谢谢,
我正在尝试在Drupal 8中安装商务模块,但是出现错误“找不到BC math PHP扩展名”。
我已经搜索了此问题,并尝试了其他操作,例如通过添加'bcmath.scale = 2'来编辑PHP.ini,但是我仍然收到错误消息。
任何帮助,将不胜感激,谢谢。
我不确定我做错了什么,但是这个计算
bcscale(20);
echo bcmul(bcdiv('422218', '2388865'), '473');
Run Code Online (Sandbox Code Playgroud)
回应“83.59999999999999999670”但其他所有计算器都给我83.6。
有没有办法解决这个问题,还是 bcmath 中的一个缺陷?
我在docker容器上运行linux实例.这是一个debian:jessie用php 5.6.
我想安装bcmath模块,但我没有成功.
有人知道怎么做吗?
root@1419c032c35f:/etc/php5/fpm# apt install php5.6-bcmath
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php5.6-bcmath
E: Couldn't find any package by regex 'php5.6-bcmath'
Run Code Online (Sandbox Code Playgroud) 安装 bcmath 时出现以下错误
root@cfe90ea33de0:/var/www/web# apt install php-bcmath
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php-bcmath is a virtual package provided by:
php7.3-bcmath 7.3.14-1~deb10u1 [Not candidate version]
php7.3-bcmath 7.3.11-1~deb10u1 [Not candidate version]
php7.0-bcmath 7.0.33-0+deb9u7 [Not candidate version]
php7.0-bcmath 7.0.33-0+deb9u6 [Not candidate version]
E: Package 'php-bcmath' has no installation candidate
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下命令仍然相同的错误
apt-get install php7.3-bcmath
apt-get install php7.0-bcmath
V=`php -v | sed -e '/^PHP/!d' -e 's/.* \([0-9]\+\.[0-9]\+\).*$/\1/'` \apt-get install php$V-bcmath
Run Code Online (Sandbox Code Playgroud)