Call to undefined function bcadd()
先介绍一下当前使用的环境。同学们可以比较一下,看本篇文章是否可以提供帮助。
docker 部署
- nginx 1.24
- php 8.1-fpm
再介绍一下框架,使用的是 "laravel 9.33.0"
其实这里跟 laravel 框架和 nginx 是没太多关系的,因为我们主要是使用 php 的扩展函数 bcmath
主要就是列出来,好区分一下环境,了解更多。或许有时候 就会存在一些我们认为不可能,结果就是如此的事情。
bc函数,除了 bcadd 还有其他的, bcadd 的意思是指 两个数字 相加,那么有相加,就有相减,相乘,相除...
先将相关的 bc函数 列出来
- bcadd 两个任意精度数字相加
- bccomp 比较两个任意精度的数字,结果 1,0,-1
- bcdiv 两个任意精度的数字除法计算
- bcmod 对一个任意精度数字取模
- bcmul 两个任意精度数字乘法计算
- bcpow 任意精度数字的乘方
- bcpowmod 先乘方,再取模
- bcscale 设置所有bc数学函数的默认小数点保留位数
- bcsqrt 任意精度数字的二次方根
- bcsub 两个任意精度数字相减
场景:
我在做 订单金额 计算的时候,考虑到精度问题,如果用常规的 100 + 20 - 7 这种,或许会出现一些精度问题,因为以前就遇到过。我明明计算并且返回的数据是 某金额 比如是 9.99元,json 数据返回给前端时,结果就出现 9.999999998 这样的数据给到前端了。前端不知所措,我更加不知所措。 原因是因为 编程语言对浮点数和大整数的运算,表示,存储方面都存在一定的问题。
所以,出现了 bcmath
关于 bcmath (Binary Calculator)
对于任意精度的数学,PHP提供了支持用字符串表示的任意大小和精度的数字的二进制计算,最多为 2147483647-1(或0x7FFFFFFF-1)。
那么我们就看一下 phpinfo 信息,配置是否支持。
很不巧,并没有 bcmath 相关的,所以我们在代码里使用 bcadd() 时,就会出现这样的错误:
Call to undefined function bcadd()
"Call to undefined function bcadd()" 翻译过来就是 "调用未定义函数 bcadd()"
我们需要解决的是,安装下载 bcmath 扩展包,这样就可以了。
因为用的是 docker,所以步骤如下:
1. 进入容器
docker exec -it CONTAINER ID bash
CONTAINER ID 这是容器的ID,也可以填写容器名称
查看容器 ID 和容器名称的命令:
docker ps
2. 执行安装
docker-php-ext-install -j$(nproc) bcmath
3. 退出容器,重启容器
exitdocker restart CONTAINER ID
然后我们再返回 phpinfo 查看一下
现在就能找到 bcmath 相关的了。
然后我们回到代码里,之前运行 bcadd 时,出现过 "Call to undefined function bcadd()"
那么我们现在执行看一下:
到此 就解决了 "Call to undefined function bcadd()" 的问题
Call to undefined function bcadd()相关推荐
- PHP报错:Call to undefined function bcmul()
标签:bcmath bcmul() PHP报错:Call to undefined function bcmul(),在网上查到 bc是Binary Calculator的缩写.bc*函数的参数都是操 ...
- PHP报错:Call to undefined function bcmul()即php-bcmath模块未正常工作
PHP报错:Call to undefined function bcmul(),在网上查到 bc是Binary Calculator的缩写.bc*函数的参数都是操作数加上一个可选的 [int sca ...
- 解决Undefined function or method 'vgg_kmiter' for input arguments of type 'double'.
Undefined function or method 'vgg_kmiter' for input arguments of type 'double'. Error in ==> vgg_ ...
- php5.4 mysql connect,php5.4 Call to undefined function mysql_connect()
今天学习PHP中连接MySQL,使用mysql_connect()函数时,碰到以下错误: "Call to undefined function mysql_connect()", ...
- Call to undefined function mysql_connect()
PHP5 报错Fatal error: Call to undefined function mysql_connect() 解决方法一 在PHP代码中使用phpinfo()函数查看PHP基本信息 从 ...
- OpenGL.error.NullFunctionError: Attempt to call an undefined function”解决方案
在windows_64下利用命令:pip install pyopengl 安装python的openGL环境.结果运行示例代码出现以下错误: OpenGL.error.NullFunctionErr ...
- Call to undefined function Workerman\posix_getpid
2019独角兽企业重金招聘Python工程师标准>>> workerman 在centos下报PHP Fatal error: Call to undefined function ...
- php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库
php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库发现php5.6.30没有加载gd库[root@cn_vs_web04:/u ...
- Matlab:成功解决Undefined function or variable B
Matlab:成功解决Undefined function or variable "B" 目录 解决问题 解决方法 解决问题 Undefined function or vari ...
最新文章
- 使用Python和OpenCV实现超快速,简单的伽玛校正功能
- NAR:gcMeta——全球微生物组数据存储和标准化分析平台
- 减免租金?也要体谅业主难处哟
- js css加载器,webpack的CSS加载器的使用
- oracle 抽样_深入理解Oracle动态采样
- 位向量(bit vector)(算法导论第十一章11.1-2)
- javaone_JavaOne 2016 Essentials:您不应该错过的7个事件和会话
- linux下查看cmake的版本
- MySQL 基础 ———— 存储过程与函数
- 把触发器说透(转载)
- android 壁纸服务,8.1 初识Android壁纸
- word文件做一半未响应_word文档未响应文件还没保存该怎么处理?
- matlab中Ctphi什么意思,Matlab在物理上的应用举例
- php计算跨月请假天数,计算请假天数JavaScript方法
- Android项目:基于Android安卓医院挂号预约系统软件app(计算机毕业设计)
- Excel获取Sheet名称公式
- moviepy音视频剪辑:使用concatenate_videoclips和clips_array将多个视频合成一个顺序播放或同屏播放的视频
- 基于React Native和Ethers.js的电子钱包(二):路由和导航
- 水下导弹发射环境因素建模需求及其扫盲笔记
- 【PPic】基于Electron+Vue+iView的图床应用设计