编程中数学知识的应用

       最近在做DRP项目,看到一条这样的语句:int TotalPagesize; TotalPagesize=(totalRecords + pageSize - 1)/pageSize,意思是  页数=(总数据 + 每页数据 -1)/ 每页数据。

       刚开始看到这句话时没明白。按常规的计算来想应该是 页数 = 总数据 / 每页数据,就这么简单。

       可是,再一想,最终要的结果"页数”必须是整数,而且必须为全部向上取整。所以,直接用 总数据/每页数据 会发生两种情况:(1)当结果正好为整数时,结果正确。(2)当结果为小数时,会导致结果正好差1。

       分析到这就想起当年做机房收费系统时的收费问题。前提是按30分钟为单位收费,不足30分钟也按30分钟计算。这里只要知道总共用了多少个单位时间,再乘以单价就可以计算出上机费用了。

       这个单位时间的计算和现在这个页数的计算是一样的原理。只不过当时是这样做的:

         unitTime =  TotalTime / 30

        if (int ( unitTime ) == unitTime) {  //向下取整后还和原来的结果一样,也就是说unitTime正好为整数

               Time = unitTime;

        }

       else{    //也就是说unitTime为小数

              Time = int  ( unitTime ) + 1;

     }

     而现在这句话TotalPagesize=(totalRecords + pageSize - 1)/pageSize,却做了同样的事情。

 

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值