在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 对金额的向上取整、向下取整相关推荐

  1. 【python】向上取整 向下取整

    python向上取整 向下取整 向上取整 ceil() 函数返回数字的向上取整整数,就是返回大于等于变量的最近的整数. ceil()是不能直接访问的,需要导入 math 模块. import math ...

  2. python取整方式(向上取整/向下取整/四舍五入)

    1.向下取整 向下取整直接用内建的 int() 函数即可: >>> a = 3.75 >>> int(a) 3 2.四舍五入 对数字进行四舍五入用 round() ...

  3. c# 整数除法取整_c# 三种取整方法 向上取整 向下取整 四舍五入

    c# 三种取整方法 向上取整 向下取整 四舍五入 Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数 public ...

  4. c# 四舍五入、上取整、下取整

    在处理一些数据时,我们希望能用"四舍五入"法实现,但是C#采用的是"四舍六入五成双"的方法,如下面的例子,就是用"四舍六入五成双"得到的结果 ...

  5. python如何对人数向上取整_python中的向上取整向下取整以及四舍五入的方法

    import math #向上取整 print "math.ceil---" print "math.ceil(2.3) => ", math.ceil( ...

  6. python向上取整 向下取整

    2019独角兽企业重金招聘Python工程师标准>>> 环境python 3.6 向上取整 ceil() 函数返回数字的向上取整整数,就是返回大于等于变量的最近的整数. ceil() ...

  7. python计算结果向上取整_python中的向上取整向下取整以及四舍五入的方法

    import math #向上取整 print "math.ceil---" print "math.ceil(2.3) => ", math.ceil( ...

  8. 向上取整向下取整探讨

    符号 向下取整符号:⌊x⌋⌊x⌋⌊x⌋,表示小于等于 xxx 的最大的整数.常用于分数,比如分数的向下取整 ⌊xy⌋⌊\cfrac {x} {y}⌋⌊yx​⌋. 向上取整符号:⌈x⌉⌈x⌉⌈x⌉,与向 ...

  9. C++基础——向上取整/向下取整

    头文件 #include<math.h> 或者 #include<cmath> 函数 函数名称 函数说明 floor() 不大于自变量的最大整数 ceil() 不小于自变量的最 ...

  10. 【向上取整/向下取整】C语言向上或向下取整 函数[内容与错误,请看评论]

    C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2.C/C++中的整数除法运算符"/&qu ...

最新文章

  1. 从技术走向管理的注意要点
  2. 360脱壳-native函数还原笔记-2017-06-25
  3. oracle 带有变量的语句_Oracle 动态SQL语句(2)之含变量的WHERE语句与日期变量
  4. ITK:基本区域增长
  5. Spark shuffle:hash和sort性能对比
  6. 资讯美国悬赏1000万美元追捕勒索黑客、能源行业成为网络钓鱼攻击“重灾区”|11月8日全球网络安全热点
  7. 京东朱健:聊聊京东广告系统的数据库选型
  8. 用python制作简单的可视化地图
  9. mean IOU是什么意思
  10. windows+中标麒麟双系统启动优先顺序调整方法
  11. 【iOS】高德地图SDK的详细使用
  12. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
  13. 行业动荡, 犹如浮萍
  14. 浙江台州3名乡村教师谈育人:教育源于爱
  15. MySQL - 8 递归查询树结构
  16. postgresql分库分表中间件开源实现方案
  17. 可视化篇:R可视化--迁徙/通勤图
  18. 建议收藏!最有效率的python数据分析入门书单
  19. 达人评测i5 1340p和i7 1360p选哪个 i51340p和i71360p区别
  20. 175、交换机的基本配置

热门文章

  1. 耿明雨司长当选终身名誉顾问
  2. layer框架的用法
  3. 全网最优雅的 React 源码调试方式
  4. 2022 亚麻王者归来?
  5. sql sum合计某一列的值
  6. 曙光来临!Nature终于发现了新冠特效药?或将彻底终结新冠时代!
  7. iOS 暗黑模式适配(项目实战篇)
  8. asp.net mvc 利用过滤器进行网站Meta设置
  9. android 自定义皮肤,仿墨迹天气在Android App中实现自定义zip皮肤更换
  10. 如何快速学会Python处理数据?