PHP实现USD转伊拉克第纳尔(IQD)后按指定档位取最近价格方法求教
实现方案
核心逻辑
你需要的舍入规则本质是以250为步长向上取整,计算规则为:
- 用原始IQD价格除以250得到商
- 对商做向上取整(舍去小数部分后整数加1)
- 取整后的商乘以250得到最终档位价格
修改后的完整代码
// 美元转伊拉克第纳尔 自动舍入到指定档位 function USD_to_IQD($price){ $exchangeRate = 1450; // 先计算基础转换价格 $baseConvertedPrice = round($price * $exchangeRate); // 新增250档位向上舍入逻辑 $step = 250; return ceil($baseConvertedPrice / $step) * $step; } // 测试用例 // 1美元转换测试 $price = 1; // USD $convertedPrice = USD_to_IQD($price); // 输出结果:1500 IQD(基础转换结果1450向上舍入250档位得到1500) // 题目给出的IQD数值测试 var_dump(ceil(1930 / 250) * 250); // 输出2000,和示例要求一致 var_dump(ceil(1600 / 250) * 250); // 输出1750,和示例要求一致 var_dump(ceil(1030 / 250) * 250); // 输出1250,和示例要求一致
补充说明
如果后续业务调整为就近舍入(小于半档向下舍、大于等于半档向上舍),只需要把代码里的ceil替换为round即可。
内容的提问来源于stack exchange,提问作者Someone001
相关产品推荐
相关产品推荐

