PHP 处理金额

导语

涉及到金额的代码,一定要谨慎处理。刚好最近做了相关的功能,下面大概说一下。

存储

PHP 的浮点数是不能精确计算的,具体的可以看这篇文章。所幸的是,金额一般不会有太多的小数。那么存储的时候呢,一言以蔽之,以 为单位进行存储。在 MySQL 中,以 int 类型存储就行了(视情况选择字段类型)。

计算

上面提到以 为单位存储,也就是 1 元存储为 100 分。可以使用 PHP 内置的 BC Math 系列函数进行计算。日后会再写一篇详解。

格式化金额

下面是格式化金额的实例

/*** 格式化金额* @param $price* @return string*/public function formatPrice($price){if (!is_numeric($price)) {$price = 0;}return number_format(bcdiv($price, 100, 2), 2);}

参考资料: 关于PHP浮点数你应该知道的(All ‘bogus’ about the float in PHP)、PHP浮点数的一个常见问题的解答、BC Math。

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

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

相关文章

解决浏览器 Provisional headers are shown 无法向后台发送请求问题

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我的情况和下面情况一样,有一个断点。 今天调试项目BUG,页面的一个按钮点击后页面无反应,去后台找对…

台湾邮政历史常设展重新开幕

1月29日,重新开幕的台湾邮政历史常设展增加了与观众的对话和互动,希望吸引不同年龄层观众。中新社记者 孔任远 摄 1月29日,重新开幕的台湾邮政历史常设展增加了与观众的对话和互动,希望吸引不同年龄层观众。中新社记者 孔任远 摄 …

微信屏蔽百度红包活动页面,谁在焦虑?

1月29日消息,百度与中央电视台合作的百度红包链接分享页面被微信屏蔽,打开相关页面显示:网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境,已经停止访问该网页。 雷锋网了解到&#x…

Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积

Intel c编译器有下列优点,建议VC项目开发采用intel c编译器取代VS自带c编译器: 与 Microsoft Visual C 相兼容,可以嵌入 Microsoft Visual Studio 开发环境。 支持最新的多核处理器,并提供安全功能,可以通过执行堆栈…

Redis数据结构之简单动态字符串SDS

Redis的底层数据结构非常多,其中包括SDS、ZipList、SkipList、LinkedList、HashTable、Intset等。如果你对Redis的理解还只停留在get、set的水平的话,是远远不足以应对面试提问的。本文简单介绍了Redis底层最重要的数据结构 - 简单动态字符串&#xff08…

windows 小技巧

2019独角兽企业重金招聘Python工程师标准>>> 桌面图标显示不全、图标呈现白色方块 ie4uinit -show 关闭占用指定端口的进程 获取进程: netstat -ano | findstr 端口号关闭进程:taskkill -f -pid 进程号文件被占用 打开任务管理器,切换到 性能…

谈判学:三招了解对方底线

导读:谈判者都希望能了解对方的底线,最直接的一招就是将对手变成“朋友”,只是这种“内奸法”毕竟不是常规之法。大多数情况下,谈判双方也不可能像《无间道》一样在对方阵营安放卧底,但是我们完全可以通过一些办法来揣…

SQL SERVER 2012 AlwaysOn - 维护篇 03

搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念; DBA 不但要熟悉数据库也要熟悉操作系统的一些概念&#xf…

区块链BAAS平台:公共或私人区块链编程以用于各种用途

2019独角兽企业重金招聘Python工程师标准>>> 人们可以为公共或私人区块链编程以用于各种用途。理论上,我认为牺牲权力下放的方面可以解决区块链技术背后的许多当前问题。区块链仍然可以包容,而不是分散。这如何解决当前的一些问题&#xff1f…

易用性问题回复

针对淘宝网为例,以一次完整的购物流程为背景,我们分析了在淘宝网中的一些易用性的体现,主要场景如下图所示: 在本场景中,新用户下载淘宝app时,第一次打开应用,淘宝app会出现新手指引,教会用户如…

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录,并使用了多个数据过滤器。但是,要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合(例如应用程序在特定…

职业发展 先“立功”还是先“安内”?

导读:职业生涯更上一层楼,章良踌躇满志,想在短期内建功立业,奠定江湖地位。但他清楚,自己运筹中的分公司服务升级计划,对公司整体和自己的职业生涯都非常有利,却将不可避免地转移老将掌握的部分…

kong入门实战

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 安装kong-database docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong&…

PAT A1048

示例思想中提到了二分以及two point概念,这个需要后面进行总结;这个示例也给出了一个新的思路。对于两个数字和m,查找两个加数,可以进行i和m-i的枚举,通过遍历数组查看两个加数是否存在,来进行遍历&#xf…

CentOS 7 防火墙操作

导语 今天说下防火墙的操作。CentOS 6 的防火墙是 iptables,CentOS 7 默认的是 firewall,以前的操作不再适用。 查看、开启 服务器刚刚重启完毕,先来看下防火墙的状态,输入 systemctl status firewalld 进行查看 这里是关闭的&…

[python作业AI毕业设计博客]比Selenium IDE更好用的录制工具: Katalon Recorder

Selenium IDE(集成开发环境 Integrated Development Environment)是用于构建测试脚本的原型工具。 它是一个Firefox插件,提供了易于使用的界面,用于开发自动化测试。 但是最新的Selenium IDE总是弹出一系列如下的对话框,不能直接录制&#xf…

价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。 这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。 import time import akshare as ak #…

有前途的人工智能大数据分析相关职业:Python数据科学入门之路

2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一。Python是数据科学的首选编程语言。 2016年,它超越了R on Kaggle,这是数据科学竞赛的首选平台。2017年&#xff0…

STL 容器简介:C++ 容器:顺序性容器、关联式容器和容器适配器

STL标准容器类简介 标准容器类说明顺序性容器vector从后面快速的插入与删除,直接访问任何元素deque从前面或后面快速的插入与删除,直接访问任何元素list双链表,从任何地方快速插入与删除关联容器set快速查找,不允许重复值multise…

用友云开发者中心助你上云系列之在线调试

现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。当我们谈论…