PHP如何显示两位小数
发布网友
发布时间:2022-04-28 01:15
我来回答
共3个回答
懂视网
时间:2022-04-28 05:36
php转成两位小数的实现方法:1、利用round对浮点数进行四舍五入;2、利用sprintf格式化字符串;3、利用千位分组来格式化数字的函数number_format。
推荐:《PHP视频教程》
PHP保留两位小数的三种方法
/**
* PHP保留两位小数的几种方法
* @link http://www.phpddt.com
*/
$num = 10.4567;
//第一种:利用round()对浮点数进行四舍五入
echo round($num,2); //10.46
//第二种:利用sprintf格式化字符串
$format_num = sprintf("%.2f",$num);
echo $format_num; //10.46
//第三种:利用千位分组来格式化数字的函数number_format()
echo number_format($num, 2); //10.46
//或者如下
echo number_format($num, 2, '.', ''); //10/46
热心网友
时间:2022-04-28 02:44
一 round()函数:
float round ( float $val [, int $precision ] )
返回将 val 根据指定精度 precision (十进制小数点后数字的数目)进行四舍五入的结果。
precision 也可 以是负数或零(默认值)。
例如:
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
$a = 12345678;
echo round($a,-3);//12346000
但是有时候如遇到这样的数字就不行了,12.3, 13.4, 15,6
//我们要转为 12.30, 13.40, 15,60,这样的值,就得用另外一种强大的方法了。
二sprintf()[或者printf()函数]函数
此函数源于c 中强的printf()函数。所以是一个强大的格式化工具。
说明:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
format包含:
其格式(format)有如下值:
d 有符号10进制整数
i 有符号10进制整数
o 无符号8进制整数
u 无符号10进制整数
x 无符号的16进制数字,并以小写abcdef表示
X 无符号的16进制数字,并以大写ABCDEF表示
F/f 浮点数
E/e 用科学表示格式的浮点数
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
c 单个字符
s 字符串
% 显示百分号本身
热心网友
时间:2022-04-28 04:02
一 round()函数:
float round ( float $val [, int $precision ] )
返回将 val 根据指定精度 precision (十进制小数点后数字的数目)进行四舍五入的结果。
precision 也可 以是负数或零(默认值)。
例如:
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
$a = 12345678;
echo round($a,-3);//12346000
但是有时候如遇到这样的数字就不行了,12.3, 13.4, 15,6
//我们要转为 12.30, 13.40, 15,60,这样的值,就得用另外一种强大的方法了。
二sprintf()[或者printf()函数]函数
此函数源于c 中强的printf()函数。所以是一个强大的格式化工具。
说明:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
format包含:
其格式(format)有如下值:
d 有符号10进制整数
i 有符号10进制整数
o 无符号8进制整数
u 无符号10进制整数
x 无符号的16进制数字,并以小写abcdef表示
X 无符号的16进制数字,并以大写ABCDEF表示
F/f 浮点数
E/e 用科学表示格式的浮点数
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
c 单个字符
s 字符串
% 显示百分号本身
格式说明:
%[标志][输出最小宽度][. 精度][长度]转换说明符
方括号里是可选项.
例子1:(%d)
$a = 12;
printf("d",$a);// 012(如果这里是printf("=",$a),那么输出也是三位,只是在前补的是空格)
以上表示:我要输出三位的整数,但$a只有两位,
那么将在前以补0方式,直到三位。
例子2:(%s)
$a = 'i love';
printf("s",$a);
以上表示我要输出10位字符,但是$a只有6位,那么将会在前面补上4位空格
%s的 m.ns形式:m指最小宽度,而n,指显示字符串的时候,显示前n个字符.
$a = 'i love';
printf(".3s",$a);//将输出 'i l'
我仍然输出10位字符,只不过我只要字符中的前三位字符.
例子3: (%f)
%f的 %m.nf 形式:m指整个实数,包括整数、小数点和小数共占m个字符的宽度,如果不够宽度,将在左边补空格。而n,指实数输出的时候,显示n位小数.
$a = '12.3';
printf(".3f",$a);//将输出 12.300
整个实数以10位输出,但保留三位小数
那么上面的 12.3, 13.4, 15,6就很容易形式成 12.30, 13.40, 15,60。