打赏

php保留两位小数的方法

 1 <?php
 2 $num = 8.16789;
 3 
 4 //第一种:利用round()对浮点数进行四舍五入
 5 echo round($num,2).PHP_EOL; //8.17
 6 
 7 //第二种:利用sprintf格式化字符串()
 8 $format_num = sprintf("%.2f",$num);
 9 echo $format_num.PHP_EOL; //8.17
10 
11 //此函数对于5不进1,大于5才进1
12 $sprint_num = sprintf("%.1f",5227.25);
13 echo $sprint_num.PHP_EOL; //5227.2
14 
15 
16 //第三种:利用千位分组来格式化数字的函数number_format()
17 echo number_format($num, 2).PHP_EOL; //8.17
18 //或者如下
19 echo number_format($num, 2, '.', '').PHP_EOL; //8.17(推荐使用这种方法) 
20 //或者如下
21 echo number_format(2,2);//2.00 以千位分隔符方式格式化一个数字 不夠自動補0
22 
23 //此函数对于5进1
24 $format_num = number_format( 5227.25,1);
25 echo $format_num;////5,227.3

下面看下PHP中对一些商品的价格计算或价格的的展示,需要精确到小数点后的两位数字,也就是我们平时RMB中的分的单位。

那在PHP中如何展示商品的价格,并保留到分的单位的呢?

PHP number_format() 函数

number_format():函数可以通过千位分组的形式来格式化数字。

语法:

1 number_format(number,decimals,decimalpoint,separator)

参数:

number:必需。要格式化的数字。

decimals:可选。规定多少个小数。

decimalpoint:可选。规定用作小数点的字符串。

separator:可选。规定用作千位分隔符的字符串。

例:PHP商品价格以元为单位,保留两位小数

 1 <?php
 2 $a = 10;
 3 echo number_format($a, '2') . "<br/>";
 4 
 5 $b = 100000;
 6 echo number_format($b, '2') . "<br/>";
 7 
 8 $c = 5458.5684;
 9 echo number_format($c, '2') . "<br/>";
10 
11 $d = '1254.8963';
12 echo number_format($d, '2') . "<br/>";
13 
14 $e = '88.9643';
15 echo number_format($e, '2') . "<br/>";
16 
17 分别输出:
18 10.00
19 100,000.00
20 5,458.57
21 1,254.90
22 88.96

以上示例总结:

1、无论是数字类型或是字符串类型的数字,都可以被 number_format() 函数操作

2、number_format() 在操作不含有小数的数字时,如果设置了有多小个小数,会以 0 的形式补充。

3、如果操作带有多少小数的数字,会以四舍五入的方式进行最近一位的取值

4、如果不设置 number_format() 第三个和第四个参数,整数部分如果大于3位,那么从小数点左边向右开始,每三位都用','号分割

 

posted on 2018-12-28 15:10  头大的冯冯  阅读(186)  评论(0编辑  收藏  举报

导航