加拿大宣布他们将不再类型转换便士,美国财政部也在强烈考虑效仿!这意味着货币金额必须四舍五入到最接近的五分之一,因此需要大量的程序修改!..在当铺业务中,我们一直在将贷款金额四舍五入到最接近的 5 美元面额,例如50、55、60.. 当计算出的贷款介于 50 美元和 100 美元之间时,面额超过 100 美元的最接近的 10 美元,等等。这是为了尽量减少使用较小面额的钞票的常见做法。那么什么是四舍五入到最接近的所需面额的好算法?
在 SQL 中,我可以创建一个用户定义的数据类型以舍入到 n 面额,还是最好保留 decimal(8,2) 数据类型并使用函数舍入?
最佳答案
假设您的数字类似于:44.32
,那么您需要做的就是(这是伪代码,在 c++ 中的实现应该很简单):
findmod = (num_to_be_changed*100)%5
if findmod <= 2
new_num = num_to_be_changed - findmod
else
new_num = num_to_be_changed + (5 - findmod)
end
new_num = new_num/100
关于c++ - 将货币金额四舍五入到最接近的五分之一、四分之一、1 美元、5 美元等面额的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952643/