如何将货币价值汇总到最近的$ 5.00区间?

时间:2010-03-28 04:00:10

标签: c++ sql informix

我有一个基于Informix-SQL的Pawnshop应用程序,它根据黄金的重量和纯度计算出应该向客户借多少钱的估算。典当行借出的最低金额为5.00美元。典当行员工通常会提供以5或0结尾的金额。例如:10,15,20,100,110,125等。他们这样做是为了不会遇到1.00美元钞票的短缺问题。因此,如果我的系统计算贷款应该是:12.49美元,然后将其四舍五入到10美元,12.50美元到15.00美元,13.00美元到15.00美元,17.50美元到20.00美元等等!如果需要,员工可以随时覆盖舍入金额。是否有可能在执行屏幕的指令部分完成此操作,或者我是否必须编写一个cfunc并从执行内部调用它?..是否有任何C库函数执行货币值的间隔舍入?...另一个注意事项,我认为美国政府应该停止使用便士,这样企业可以将数量增加到最近的镍,这将节省我们口袋里的大量时间和重量!

2 个答案:

答案 0 :(得分:8)

我只是将5除以圆为适当的整数,然后乘以5。

可能有一种更简单的方法,但这样可行。

答案 1 :(得分:3)

C函数round和亲戚会做你所要求的。

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

还有rint,你可以避免,因为它不能保证正确地绕12.50美元。