extjs4 - PHP 保留两位小数 float格式
程序员文章站
2024-02-10 22:25:16
...
现在有个需求,从数据库取出一大坨五位小数的数字,然后保留两位小数。我用了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的某些配置实现,也非常感谢!
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");