【发布时间】:2011-08-02 01:18:34
【问题描述】:
下面的函数找到数字,将其四舍五入并在其末尾添加 K 或 M
IE:25000 变成 25K
function abbr_no($number) {
$number = preg_replace('/[^0-9]/', '', $number);
$numbers = array('', 'K', 'M');
if ($number == 0) {
return('n/a');
} else {
return (round($number/pow(10000, ($i = floor(log($number, 10000)))), 0) . $numbers[$i]);
}
}
所以它基本上可以满足我的要求,但是对于像 389345 这样的数字,它会将其四舍五入并吐出 39K (应该如此)但是我会喜欢结果是 398K(3 位数字)
现在在最后一个返回行:
0) . $numbers[$i]);
如果我将 0 更改为 1,结果将变为 39.8K,但我又不想要小数点,所以我目前被卡住并撞到了砖墙
一如既往地感谢所有帮助,并提前感谢您。
【问题讨论】:
-
它不应该吐出39K,而是正确的389K(除非你在做我不做的事理解)。将
10000更改为1000。 -
389345不应该变成39k吗?我认为有问题,但目前无法验证..
-
好,该睡觉了,我想大声笑..感谢 Wrikken 给了很多 0 的问题 :)
-
389345 它四舍五入并吐出 39K(应该如此)但是我希望结果是 398K | 更正: 389345 将其四舍五入并吐出 390K(应该如此),但我希望结果为 389K。有人尝试编辑这部分问题吗?
标签: php function numbers abbreviation