首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数字缩写符

问PHP数字缩写符
EN

Stack Overflow用户
提问于 2012-10-24 21:05:28
回答 5查看 2.4K关注 0票数 9

编辑:下面的函数现在可以正确地处理缩写,实现了@Asad的解决方案

嗨,我目前正在做一个喜欢按钮,我已经有了所有的基本功能很好地工作,但我已经开始了数字缩写代码和撞墙,因为我不能想出如何使缩写更精确。

我有一个号码,例如100012301500 154000 1500000 1000000

我想用一个缩写来格式化它们。即

如果是1000,那么1k,1.1k,2k,10k,10.5k等等...

以此类推,数万,数十万和数百万,等等。

目前,我有以下函数,但还不够具体:

代码语言:javascript
复制
function abreviateTotalCount($value) 
{

    $abbreviations = array(12 => 'T', 9 => 'B', 6 => 'M', 3 => 'K', 0 => '');

    foreach($abbreviations as $exponent => $abbreviation) 
    {

        if($value >= pow(10, $exponent)) 
        {

            return round(floatval($value / pow(10, $exponent))).$abbreviation;

        }

    }

}

提前感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-24 21:13:52

如果您希望保留小数位,请使用floatval而不是intval:

代码语言:javascript
复制
return round(floatval($value / pow(10, $exponent)),1).$abbreviation;

获取float表示形式并舍入到小数点后1位。

票数 6
EN

Stack Overflow用户

发布于 2012-10-24 21:16:46

检查项目https://github.com/gburtini/Humanize-PHP/blob/master/Humanize.php

代码语言:javascript
复制
php > echo HumanizePHP::intword(256,0,0);
3 hundred
php > echo HumanizePHP::intword(256,0,1);
2.6 hundred
php > echo HumanizePHP::intword(256,0,2);
2.56 hundred

至少你可以从这个实现中获得灵感

票数 2
EN

Stack Overflow用户

发布于 2012-10-24 21:19:08

不使用intval(),而是使用number_format()为您提供一个具有所需小数位数的数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13049851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档