PHP:转换为 "pretty numbers" 的最简单方法?
PHP: Easiest way to convert to "pretty numbers"?
我的价格最终为:
3.03
8229.23
8459.39
384.29
393.20
229.99
etc
我想要一个简单的函数,通过它我可以将它们转换成它们的 "prettier" 版本。我基本上想:向上舍入到 49.99 或 9.99 版本。所以上面会变成:
3.03 --> 9.99
8229.23 --> 8249.99
8459.39 --> 8459.99
384.29 --> 399.99
393.20 --> 399.99
229.99 --> 249.99
即价格总是以 9.99 或 49.99 结尾。
在 PHP 中我该怎么做?
也许是这个(我假设你的意思是 8459.39 --> 8499.99
:
$get_new_price = function($price) {
$base = $price / 100;
return ($base > 0.1 ? ($base - floor($base) > 0.5 ? floor($base) * 100 + 99.99 : floor($base) * 100 + 49.99) : 9.99);
};
$prices = array(
3.03,
8229.23,
8459.39,
384.29,
393.20,
229.99
);
$new_prices = array_map($get_new_price, $prices);
我的价格最终为:
3.03
8229.23
8459.39
384.29
393.20
229.99
etc
我想要一个简单的函数,通过它我可以将它们转换成它们的 "prettier" 版本。我基本上想:向上舍入到 49.99 或 9.99 版本。所以上面会变成:
3.03 --> 9.99
8229.23 --> 8249.99
8459.39 --> 8459.99
384.29 --> 399.99
393.20 --> 399.99
229.99 --> 249.99
即价格总是以 9.99 或 49.99 结尾。
在 PHP 中我该怎么做?
也许是这个(我假设你的意思是 8459.39 --> 8499.99
:
$get_new_price = function($price) {
$base = $price / 100;
return ($base > 0.1 ? ($base - floor($base) > 0.5 ? floor($base) * 100 + 99.99 : floor($base) * 100 + 49.99) : 9.99);
};
$prices = array(
3.03,
8229.23,
8459.39,
384.29,
393.20,
229.99
);
$new_prices = array_map($get_new_price, $prices);