PHP 对金额的向上取整、向下取整
在PHP中,一般来说如果需要向上取整,向下取整。用 ceil()
、floor()
函数就可以。但是如果对金额的向上、向下取整要怎么处理那(金额一般都是要保留两位小数的)。
向上取整
/*** 默认保留2位(金额向上取整算法)* @param $amount* @param int $decimals* @return float|int*/public static function getCeilAmount($amount, $decimals=2){$amount = $amount * pow(10, $decimals);$amount = ceil($amount);$amount = $amount/pow(10, $decimals);return number_format($amount, $decimals, '.', '');}
一开始以为觉得上面的代码稳的,结果发现现实和理想是不一样。输入 35.02, 出来的却是 35.03。为什么哪。因为$amount * pow(10, $decimals)
的结果是个float,输出的是3502.00000000023974
, 那最后的结果自然就是 35.03 了
解决
/*** 默认保留2位(金额向上取整算法)* @param $amount* @param int $decimals* @return float|int*/public static function getCeilAmount($amount, $decimals=2){$amount = $amount * pow(10, $decimals);$amount = round($amount, 1);$amount = ceil($amount);$amount = $amount/pow(10, $decimals);return number_format($amount, $decimals, '.', '');}
这里提供一个不太优雅的解决方法(其实是自己没想到好的),用round()
保留一位小数。然后再ceil()
。
向下取整
向下取整不会出现上述问题。方法同理,这里就不贴出来了。
其他
期待大牛可以给出更好的方案。
PHP 对金额的向上取整、向下取整相关推荐
- 【python】向上取整 向下取整
python向上取整 向下取整 向上取整 ceil() 函数返回数字的向上取整整数,就是返回大于等于变量的最近的整数. ceil()是不能直接访问的,需要导入 math 模块. import math ...
- python取整方式(向上取整/向下取整/四舍五入)
1.向下取整 向下取整直接用内建的 int() 函数即可: >>> a = 3.75 >>> int(a) 3 2.四舍五入 对数字进行四舍五入用 round() ...
- c# 整数除法取整_c# 三种取整方法 向上取整 向下取整 四舍五入
c# 三种取整方法 向上取整 向下取整 四舍五入 Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数 public ...
- c# 四舍五入、上取整、下取整
在处理一些数据时,我们希望能用"四舍五入"法实现,但是C#采用的是"四舍六入五成双"的方法,如下面的例子,就是用"四舍六入五成双"得到的结果 ...
- python如何对人数向上取整_python中的向上取整向下取整以及四舍五入的方法
import math #向上取整 print "math.ceil---" print "math.ceil(2.3) => ", math.ceil( ...
- python向上取整 向下取整
2019独角兽企业重金招聘Python工程师标准>>> 环境python 3.6 向上取整 ceil() 函数返回数字的向上取整整数,就是返回大于等于变量的最近的整数. ceil() ...
- python计算结果向上取整_python中的向上取整向下取整以及四舍五入的方法
import math #向上取整 print "math.ceil---" print "math.ceil(2.3) => ", math.ceil( ...
- 向上取整向下取整探讨
符号 向下取整符号:⌊x⌋⌊x⌋⌊x⌋,表示小于等于 xxx 的最大的整数.常用于分数,比如分数的向下取整 ⌊xy⌋⌊\cfrac {x} {y}⌋⌊yx⌋. 向上取整符号:⌈x⌉⌈x⌉⌈x⌉,与向 ...
- C++基础——向上取整/向下取整
头文件 #include<math.h> 或者 #include<cmath> 函数 函数名称 函数说明 floor() 不大于自变量的最大整数 ceil() 不小于自变量的最 ...
- 【向上取整/向下取整】C语言向上或向下取整 函数[内容与错误,请看评论]
C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2.C/C++中的整数除法运算符"/&qu ...
最新文章
- 从技术走向管理的注意要点
- 360脱壳-native函数还原笔记-2017-06-25
- oracle 带有变量的语句_Oracle 动态SQL语句(2)之含变量的WHERE语句与日期变量
- ITK:基本区域增长
- Spark shuffle:hash和sort性能对比
- 资讯美国悬赏1000万美元追捕勒索黑客、能源行业成为网络钓鱼攻击“重灾区”|11月8日全球网络安全热点
- 京东朱健:聊聊京东广告系统的数据库选型
- 用python制作简单的可视化地图
- mean IOU是什么意思
- windows+中标麒麟双系统启动优先顺序调整方法
- 【iOS】高德地图SDK的详细使用
- 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
- 行业动荡, 犹如浮萍
- 浙江台州3名乡村教师谈育人:教育源于爱
- MySQL - 8 递归查询树结构
- postgresql分库分表中间件开源实现方案
- 可视化篇:R可视化--迁徙/通勤图
- 建议收藏!最有效率的python数据分析入门书单
- 达人评测i5 1340p和i7 1360p选哪个 i51340p和i71360p区别
- 175、交换机的基本配置