Call to undefined function bcadd()

news2024/11/19 18:42:47

先介绍一下当前使用的环境。同学们可以比较一下,看本篇文章是否可以提供帮助。

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. 退出容器,重启容器

exit

docker restart CONTAINER ID

然后我们再返回 phpinfo 查看一下

现在就能找到 bcmath 相关的了。

然后我们回到代码里,之前运行 bcadd 时,出现过 "Call to undefined function bcadd()"

那么我们现在执行看一下:

到此 就解决了 "Call to undefined function bcadd()" 的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL高级_第09章_性能分析工具的使用

MySQL高级_第09章_性能分析工具的使用 在数据库调优中,我们的目标就是 响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式。 1. 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该…

Windows平台软件开发模型总结:V型模型、瀑布模型、迭代模型、增量模型、螺旋模型、原型模型

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows平台软件开发模型总结:V型模型、瀑布模型、迭代模型、增量模型、螺旋模型、原型模型。 很多人可能知道了,那就是在我们浙江省,从2021年年初到现在&…

内网 monorepo 配置指南(PNPM、YARN)

此处的内网是指没办法连接互联网进行依赖下载的环境,本文以windows平台为例 背景说明 绝大部分政府机关、国有企业都是在内网开发,无法从互联网同步依赖,就需要另辟蹊径解决项目依赖的问题。 传统的单包项目还好,从互联网机器将…

兼顾降本与增效,我们对存算分离的设计与思考

“降本增效”是最近企业常被提及的关键字,作为新时代企业发展的数据大脑,企业大数据团队需要持续探索如何在有限资源下创造更多价值。本文将以场景为"引",技术为"核",介绍如何基于 StarRocks 全新的存算分离架…

软考软件设计师真题与答案解析

1、2020下半年基础知识(上午题) 1、某计算机系统的CPU主频为2.8GHz。某应用程序包括3类指令,各类指令的CPI(执行每条指令所需要的时钟周期数)及指令比例如’下表所示。执行该应用程序时的平均CPI为( );运算…

2023 操作系统 R 复习大纲( 适用于软件 21 级)

目录 01.操作系统的定义 02.操作系统的基本类型及特征 1.批处理操作系统(单、多道) 2.分时操作系统 3.实时操作系统 03.操作系统的功能及特征 04.进程的定义、特征 05.进程基本状态及其转换原因 06.进程互斥、同步 07.进程控制块的内容、作用 …

Android Studio开发之路 (一)开发环境搭建以及问题记录

一、安装 Android Studio 安装配置教程 这个文章讲的很全面(包括了jdk的配置),我安装了1.8.0版本的JDK 以及 2022.2.1版本的Android Studio ,安装目录都是自定义的,安装完成之后的目录如下(项目目录也放到这里了&…

医院上线“报告中心”,实现报告查询“四个更好”

为进一步提升患者的就诊体验,不少医院部署云影像后,再次上线博为软件报告中心信息系统,患者和家属动动手指就能在自己手机上随时随地看到检查检验报告,彻底告别传统的纸质报告单方式,实现检查检验数据永久保存。 博为…

【Java多线程编程】wait与notify方法详解

前言 我们知道,线程的调度是无序的,但有些情况要求线程的执行是有序的。因此,我们可以使用 wait() 方法来使线程执行有序。 本期讲解 Java 多线程中 synchronized 锁配套使用的 wait 方法、notify方法和notifyAll方法,以及 wait 方…

jQuery 操作 DOM 及 CSS

jQuery 操作 DOM 及 CSS 1. jQuery 修改|获取页面元素文本及属性值 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标签) val() - 设置或返回表单字段的值 attr() - 方法用于获取属性值。 1.1 举例&#xff…

win11亮度条消失解决方法之一

一、前言 1、本人电脑情况:联想小新Pro16,win11家庭版 2、联想技术工程师三种方式联系方式(需提供电脑背后的编号): 1) 通过预装的联想电脑管家,获取在线人工专家支持(管家链接 h…

【ETH】以太网----PHY芯片LAN8720A----电路原理图

一、LAN8720A----简介 LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片,I/0 引脚电压符合EEE802.3-2005 标准,支持通过 RMI 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。 LAN87…

SpringMVC的请求与响应(请求映射路径、请求参数、日期类型参数传递 、响应json数据)

文章目录 1,PostMan工具的使用1.1 PostMan简介1.2 PostMan安装1.3 PostMan使用1.3.1 创建WorkSpace工作空间1.3.2 发送请求1.3.3 保存当前请求 2,请求与响应2.1 设置请求映射路径2.1.1 环境准备2.1.2 问题分析2.1.3 设置映射路径步骤1:修改Controller步骤…

Java基础面试题突击系列2

👩🏻 作者:一只IT攻城狮 ,关注我不迷路 ❤️《java面试核心知识》突击系列,持续更新… 💐 面试必知必会学习路线:Java技术栈面试系列SpringCloud项目实战学习路线 📝再小的收获*365天…

以ChatGPT写诗为例,教你如何用AI软件创新性提问?

想用AI软件创作出动人的诗篇吗? ChatGPT 是一款人工智能软件,可以帮助你创作鼓舞人心的诗歌。它为您提供了一个强大的平台来探索您的创意方面。通过一组简单的问题,您只需点击几下就可以生成令人惊叹的诗歌。 要想让机器写诗,你…

低代码开发——进最热的赛道,啃最硬的骨头

你开足马力提了一串需求,需要招聘IOS和Android工程师、前端测试,PM等人员共同完成;这意味着开发者坐下来一行一行的敲击,并不断测试修改直到上线。 这个过程短则半年,长则数年,才会给到你一个满意的产品。…

基于 Web 的作物生长监控系统的

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本毕业设计在对 A 基地进行调研的基础上。设计并开发了一套基于 Web 的作物生长监控系统,该系统由软件和硬件两部分组成。硬件部分采用了已开发好的多点温湿度采集系统,软件部分采用 Java 开发语言、HT…

回应小伙伴们的咨询,5款好用的小软件

最近陆陆续续收到好多小伙伴的咨询,这边也是抓紧时间整理出几个好用的软件,希望可以帮到大家。 1.RSS阅读器——Tabby Tabby是一款简洁美观的RSS阅读器。它可以自动抓取并订阅你喜欢的博客和网站更新。这个工具拥有简洁的界面和强大的功能,可以过滤和分…

零信任---ZTN

零信任是一种以身份为中心的新一代网络安全防护理念,通过持续的身份认证、环境状态采集、持续信任评估、动态访问控制,并遵循最小权限原则,实现在不可信网络中构筑可信的访问通道。 传统场景中,企业的安全都是在以防火墙为边界的。…

WhatsApp Business 多人使用终极指南

今时今日,几乎每个人的手机上都安装了 WhatsApp,不少电商更会依赖 WhatsApp作为和客户沟通的主要渠道。但对有一定规模的店铺来说,WhatsApp绑定一个号码和设备的设定实在很不方便。如何才能用WhatsApp Business批量处理客户查询呢&#xff1f…