PHP - 将美元转换为最接近的伊拉克第纳尔价格

PHP - Convert USD to IQD closest price

我有一个根据指定汇率从美元换算成伊拉克第纳尔的价格数字,例如:

// Conversion method
function USD_to_IQD($price){
   $exchangeRate = 1450;
   return round($price * $exchangeRate);
}

$price = 1 // USD
$convertedPrice = USD_to_IQD($price)

// result: 1450 IQD

目前一切正常,我正在获取从美元到伊拉克第纳尔(我所在国家/地区的货币)的价格。

但这里的问题是,converted price 是 (1450) 而 (450) 应该接近任一 (250, 500, 750, 1000) 根据返回的情况,在这种情况下将被关闭到(500)然后结果将是(1500),因为我需要。

示例:

$price = 1930 // IQD, should be 2000
$price = 1600 // IQD, should be 1750
$price = 1030 // IQD, should be 1250
...

视情况而定(换算后的价格)!

有什么帮助吗?

您只需使用 ceil 函数进行少量计算即可完成此操作。

我一直保持 250 不变,因为它是所有选项的倍数。

echo ceil(1930 / 250) * 250; // Output: 2000
echo ceil(1600 / 250) * 250; // Output: 1750
echo ceil(1030 / 250) * 250; // Output: 1250

你可以使用这个方法:

// Conversion method
function USD_to_IQD($price){
   $exchangeRate = 1450;
   $step = 250;

   $calculatedPrice = $price * $exchangeRate;
   $surplus = ($calculatedPrice % $step);
   return $calculatedPrice + ($surplus ? ($step - $surplus) : 0);
}