代码之家  ›  专栏  ›  技术社区  ›  Joe R.

如何将货币值舍入到最接近的5.00美元区间?

  •  3
  • Joe R.  · 技术社区  · 15 年前

    我有一个基于informix sql的当铺应用程序,它根据黄金的重量和纯度计算出应该借给客户多少钱。当铺的最低贷款额是5美元。当铺员工通常会借出以5或0结尾的金额。例如:10、15、20、100、110、125等,这样做是为了避免1美元钞票出现短缺问题。所以,如果我的系统计算出贷款应该是:$12.49,那么四舍五入为$10,$12.50到$15.00,$13.00到$15.00,$17.50到$20.00,依此类推!…如有必要,员工始终可以覆盖舍入的金额。是否可以在perform屏幕的instructions部分中完成此操作,或者我必须编写一个cfunc并从perform中调用它?…是否有任何C库函数执行货币值的区间舍入?…另一方面,我认为美国政府应该停止使用硬币,这样企业就可以把硬币的数量四舍五入到最接近的五分钱,这样可以节省我们口袋里的时间和重量!

    2 回复  |  直到 13 年前
        1
  •  8
  •   John    15 年前

    我只要除以5,四舍五入到适当的整数,再乘以5。

    也许有一种更简单的方法,但那是可行的。

        2
  •  3
  •   Potatoswatter    15 年前

    c函数 round 亲戚会按你的要求做的。

    float in_fives = roundf( exact_change / 5. ) * 5.;
    

    还有 rint ,你可能会避免,因为它不能保证12.50美元。