标签: bcmath

如何安装bcmath模块?

如何在服务器上安装bcmath模块?我试过了

yum update php-bcmath
Run Code Online (Sandbox Code Playgroud)

但它说什么都没找到.

php module bcmath

50
推荐指数
6
解决办法
15万
查看次数

如何ceil,floor和round bcmath数字?

我需要模仿cec(),floor()round()函数在bcmath数字上的确切功能,我已经发现了一个非常相似的问题,但不幸的是,由于缺乏支持,所提供的答案对我来说还不够好对于负数,并且缺少round()函数precision参数.

我想知道是否有人能够为这个问题提出一个相当简短而优雅的解决方案.

所有输入都表示赞赏,谢谢!

php rounding bcmath floor ceil

19
推荐指数
2
解决办法
8316
查看次数

在PHP中,如何生成一个大的伪随机数?

我正在寻找一种用PHP 生成一个随机数的方法,例如:

mt_rand($lower, $upper);
Run Code Online (Sandbox Code Playgroud)

我看到的距离越近gmp_random()但它不允许我指定下边界和上边界只有每个肢体的位数(我不知道它是什么).

编辑:Axsuuls答案似乎非常接近我想要的,非常类似于gmp_random,但在一个场景中似乎只有一个缺陷.

假设我不想在两者之间得到一个随机数:

  • 1225468798745475454898787465154

和:

  • 1225468798745475454898787465200

因此,如果函数名为BigRandomNumber():

BigRandomNumber($length = 31);
Run Code Online (Sandbox Code Playgroud)

这很容易返回超出指定边界的9999999999999999999999999999999.

如何使用最小/最大边界而不是长度值?

BigRandomNumber('1225468798745475454898787465154', '1225468798745475454898787465200');
Run Code Online (Sandbox Code Playgroud)

这应该返回1225468798745475454898787465 [154 .. 200]之间的随机数.

作为参考,我相信解决方案可能必须使用此问题中提供功能.

编辑:上面的帖子被删除了,这里是:

function compare($number1, $operator, $number2) {
  $x = bccomp($number1, $number2);

  switch($operator) {
    case '<':
      return -1===$x;
    case '>':
      return 1===$x;
    case '=':
    case '==':
    case '===':
      return 0===$x;
    case '!=':
    case '!==':
    case '<>':
      return 0!==$x;
  }
}
Run Code Online (Sandbox Code Playgroud)

php random gmp bcmath

15
推荐指数
2
解决办法
7183
查看次数

PHP中的任意精度数学

我目前正试图弄清楚如何使用PHP中的任意精度数字.所以我想我的第一个问题是究竟什么是任意精度数学.我试着谷歌搜索一个很好的定义,但由于某种原因,没有人可以用简单的语言.

其次,PHP中的BCMath和GMP库有什么区别?我听说GMP的API是"更新鲜",但是我很高兴.一个更好吗?

我最后的问题是BCMath/GMP需要什么类型的数字.显然它需要字符串形式的正常整数(例如"5.34"),但我已经看到BCMath函数直接用于表示常规整数的八位字节字符串的实现(例如"\ x12\x23\x45\x67"),其中我听说被称为"bigint",但谷歌再也没有给我带来任何好处.

php biginteger gmp bcmath arbitrary-precision

12
推荐指数
2
解决办法
3797
查看次数

如何在PHP中舍入/ ceil/floor一个bcmath数字?

是否有任何库函数用于此目的,所以我不手动完成并冒险以TDWTF结束?

echo ceil(31497230840470473074370324734723042.6);

// Expected result
31497230840470473074370324734723043

// Prints
<garbage>
Run Code Online (Sandbox Code Playgroud)

php largenumber bcmath

10
推荐指数
2
解决办法
4410
查看次数

如何在Ubuntu for PHP 7.1中安装bcmath

我正在使用Ubuntu 16服务器进行测试php7.1.我的一个应用程序使用bcadd功能.我知道我需要为此安装bcmath模块,但我无法找到php7.1-bcmath.当我尝试安装时apt install php-bcmath,它只是安装了php7.0-bcmath模块.

我无法php7.1-bcmath在我的服务器上随处找到模块.有人有想法吗?

apt install php7.1-bcmath 返回以下,

E: Unable to locate package php7.1-bcmath

E: Couldn't find any package by glob 'php7.1-bcmath'

E: Couldn't find any package by regex 'php7.1-bcmath'
Run Code Online (Sandbox Code Playgroud)

php bcmath ubuntu-server ubuntu-16.04 php-7.1

10
推荐指数
3
解决办法
3万
查看次数

使用php.ini启用BCMath?

我需要启用BC Math,但我不想使用--enable-bcmath,主要是因为我不理解这条路线.

有没有办法只使用php.ini来做到这一点?

php bcmath

8
推荐指数
2
解决办法
3万
查看次数

PHP | BCMath:如何获得bcscale值?

如何在BCMath的bcscale()方法中设置比例?

例:

bcscale(25);
Run Code Online (Sandbox Code Playgroud)

我怎么得到25?谢谢!

php bcmath scale

8
推荐指数
2
解决办法
1243
查看次数

无法弄清楚为什么我收到 App Engine flex“未捕获错误:调用未定义函数 Google\Protobuf\Internal\bccomp()”

我正在尝试在 App Engine flex 环境中实现 Google 的文本转语音 API,但出现此错误:

“PHP 消息:PHP 致命错误:未捕获错误:调用 /app/web/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php:941 中未定义的函数 Google\Protobuf\Internal\bccomp()”

一旦我通过在我的composer.json中要求BCmath()解决了问题

{  
    "require": {
        "ext-bcmath": "*",
        "google/cloud-text-to-speech": "^1.0",
        "google/gax": "^1.3",
         "grpc/grpc": "^1.4",
         "google/auth": "^1.8",
         "phpseclib/phpseclib": "^2.0",
         "google/protobuf": "^3.11"        
    }
}
Run Code Online (Sandbox Code Playgroud)

然后重新安装 /vendor 后我无法摆脱错误消息。我尝试通过运行来安装 BCmath 扩展

sudo apt install php7.2-bcmath
Run Code Online (Sandbox Code Playgroud)

但它说扩展已经安装。我也运行这个 php -i | grep -i bcmath 并收到此消息

/etc/php/7.2/cli/conf.d/20-bcmath.ini,bcmath BCMath 支持 => 启用 bcmath.scale => 0 => 0

bccomp() 的测试

php -r "echo bccomp('1', '2');"
Run Code Online (Sandbox Code Playgroud)

我按预期得到“-1”。看起来该功能有效。

我什至尝试在 php.ini 中启用 BCmath 扩展

extension=bcmath.so
Run Code Online (Sandbox Code Playgroud)

我将 .ini 文件放在与 /vendor 和 …

php google-app-engine bcmath google-text-to-speech composer-php

8
推荐指数
1
解决办法
9578
查看次数

致命错误:未捕获错误:调用未定义函数bcadd()

安装"eduTrac SIS"并访问"仪表板"后出现此错误

Ubuntu 16.4,PHP 7.0(php7.0-fpm),Apache2,Nginx,

URL显示错误500并显示nginx/error.log,

FastCGI发送到stderr:"PHP消息:PHP致命错误:未捕获错误:在/ var/www/html/eduTrac-SIS/app/src/vendor/phpbenchmark/phpbenchmark/lib/PHPBenchmark中调用未定义函数PHPBenchmark\bcadd() /Utils.php:18

php nginx bcmath

7
推荐指数
2
解决办法
9670
查看次数