本文目录一览:
PHP如何显示两位小数
一 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 字符串
% 显示百分号本身
用php使数字保留小数点后两位怎么做的?
PHP 中的 round() 函数可以实现
round() 函数对浮点数进行四舍五入。
round(x,prec)
参数说明
x 可选。规定要舍入的数字。
prec 可选。规定小数点后的位数。
返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。
注释:PHP 默认不能正确处理类似 "12,300.2" 的字符串。
例如:
?php
echo round(-4.635,2);
?
输出: -4.64
PHP怎么定义保留2位小数的变量
在php中要保留两位小数的方法有很多种办法,有如:printf,substr,number_format,round等等方法
方法一
sprintf()函数 ,sprintf() 函数把格式化的字符串写写入一个变量中
?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?
输出:
123.000000
方法二 substr()函数
$num = 123213.666666;
echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));
方法三 number_format()函数
$number = 1234.5678;
$nombre_format_francais = number_format($number, 2, ',', ' '); // 1234,57
$english_format_number = number_format($number, 2, '.', ''); // 1234.57(我一般用这个)
方法四 round 函数,round() 函数对浮点数进行四舍五入。
?php
echo(round(0.60));
echo(round(0.50));
echo(round(0.49));
echo(round(-4.40));
echo(round(-4.60));
?
输出:
1
1
-4
-5
如果要保留小数,后来参数根保留小数位数即可。
$number = 1234.5678;
echo round($number ,2); //1234.57
PHP 保留小数点后2位
两种取值法,看你需要什么结果:
1 四舍五入(简单,自带函数就可以解决)
$youWantNum = sprintf('%.2f', $num);
//有人说用floor,floor是取整的函数,无法直接取小数;但可以转换得到结果,那就是下面的例子
2 舍去后面的,不管是什么
/*
*$num 要处理的浮点数
*$digits 保留的小数位数
* 实现思路:先乘以10的小数位数次方,用floor向下取整,再除以除数得到舍去后面位数的结果
* 最后再用sprintf配合位数再取一次值(此处是为了解决有些数字,最后一位为零时不显示问题)
*/
function floorFloat($num, $digits) {
$num = floatval($num);
$multiple = pow(10, $digits);
$tempNum = floor($num*$multiple);
return sprintf('%.'.$digits.'f', $tempNum/$multiple);
}