ホームページ  >  記事  >  バックエンド開発  >  extjs4 - PHP 保留两位小数 float格式

extjs4 - PHP 保留两位小数 float格式

WBOY
WBOYオリジナル
2016-06-06 20:43:421338ブラウズ

现在有个需求,从数据库取出一大坨五位小数的数字,然后保留两位小数。我用了round简单处理了一下,发现诸如19.90000这样的数字,会变成19.9而不是19.90。于是尝试了一下用number format格式化,变成了19.90没问题,但是还需要在前端,展示在extjs的gridpanel里面。grid默认就支持排序,我点了排序,发现数字都是按照首字母排序的,也就是:
18.88
19.12
2.27
2.50
21.00
21.33
相当于是把数字用字符串形式下的首字母进行了排序
我的问题就是:怎么能用PHP处理一下,既保留两位小数,还能转换成数字格式,实话说我不确定PHP能不能支持这样的形式,所以如果能用Extjs的某些配置实现,也非常感谢!

回复内容:

现在有个需求,从数据库取出一大坨五位小数的数字,然后保留两位小数。我用了round简单处理了一下,发现诸如19.90000这样的数字,会变成19.9而不是19.90。于是尝试了一下用number format格式化,变成了19.90没问题,但是还需要在前端,展示在extjs的gridpanel里面。grid默认就支持排序,我点了排序,发现数字都是按照首字母排序的,也就是:
18.88
19.12
2.27
2.50
21.00
21.33
相当于是把数字用字符串形式下的首字母进行了排序
我的问题就是:怎么能用PHP处理一下,既保留两位小数,还能转换成数字格式,实话说我不确定PHP能不能支持这样的形式,所以如果能用Extjs的某些配置实现,也非常感谢!

string number_format ( float $number [, int $decimals = 0 ] )
php的number_format返回的是string。
2个解决方案
1、直接number返回给前端,前端展示的时候格式化为2位小数
2、php格式化,但是原数值也返回给前端,用以排序

php 的 round() 函数

echo sprintf("%0.2f", "19.90000");

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。