php2f
‘壹’ php怎么保存小数点后两位并且四舍五入
php保留两位小数并且四舍五入
代码如下:
$num = 123213.666666;
echo sprintf("%.2f", $num);
php保留两位小数并且不四舍五入
代码如下:
$num = 123213.666666;
echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));
php进一法取整
代码如下:
echo ceil(4.3); // 5
echo ceil(9.999); // 10
php舍去法,取整数
代码如下:
echo floor(4.3); // 4
echo floor(9.999); // 9
‘贰’ PHP printf中的问题 PHP vsprintf("With 2 decimals: %1\$.2f With no decimals: %1\$u",array($number));
正确的语句为:
printf("With 2 decimals: %1.2f<br />With no decimals: %1u",$number);
把number的值也就是123替换在%的位置,%1表示用第一个参数替换,%2用第二个,类推。
.2f 表示用两位小数的浮点数的格式。
所以第一个显示为 123.00
后面一个 %1u 表示用非小数的方式显示第一个参数。
所以显示为 123. 如果number=123.456, 那么这里仍然为 123.
‘叁’ 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;
echosprintf("%.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
0
-4
-5
如果要保留小数,后来参数根保留小数位数即可。
$number=1234.5678;
echoround($number,2);//1234.57
‘肆’ PHP 格式化小数 为 字符串
<?php
//123.19
格式化为
012319的字符串
$str
=
sprintf("%.2f",123.19);
echo
'0'.str_replace('.','',
$str);
echo
"<br>\n";
//2.2
格式化为
0220的字符串
$str
=
sprintf("%.2f",2.2);
echo
'0'.str_replace('.','',
$str);
echo
"<br>\n";
//12.3456
格式化为
01235(四舍五入)的字符串
$str
=
sprintf("%.2f",12.3456);
echo
'0'.str_replace('.','',
$str);
?>
没想到好的方法,不过这个也能实现、
$str=12.3456*100;
$str
=
sprintf("%d",$str);
echo
'0'.$str;
这个不四舍五入
‘伍’ php 如何保留2位小数
今天处理数据的时候因为要保留2位小数,查看帮助手册
<?php
$number=1234.56;
//englishnotation(default)
$english_format_number=number_format($number);
//1,235
//Frenchnotation
$nombre_format_francais=number_format($number,2,',','');
//1234,56
$number=1234.5678;
//
$english_format_number=number_format($number,2,'.','');
//1234.57
?>
‘陆’ PHP 保留小数点后2位
两种取值法,看你需要什么结果:
1 四舍五入(简单,自带函数就可以解决)
$youWantNum=sprintf('%.2f',$num);
//有人说用floor,floor是取整的函数,无法直接取小数;但可以转换得到结果,那就是下面的例子2 舍去后面的,不管是什么
/*
*$num要处理的浮点数
*$digits保留的小数位数
*实现思路:先乘以10的小数位数次方,用floor向下取整,再除以除数得到舍去后面位数的结果
*最后再用sprintf配合位数再取一次值(此处是为了解决有些数字,最后一位为零时不显示问题)
*/
functionfloorFloat($num,$digits){
$num=floatval($num);
$multiple=pow(10,$digits);
$tempNum=floor($num*$multiple);
returnsprintf('%.'.$digits.'f',$tempNum/$multiple);
}
‘柒’ <php echo dechex(47); > 结果为什么是2f怎么算的吗步骤是怎么样的
function e($v,$l){
if($v>0&&in_array($l,array(2,8,16))){
$x=array(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F);
while($v!=0){
$r.=($l!=16)?ceil($v%$l):$x[ceil($v%$l)];
$v=intval($v/$l);
}
$r=strrev($r);
$r=($l==2)?$r:(($l==8)?Ɔ'.$r:Ɔx'.$r);
return $r;
}else{
return $v;
}
}
echo e(47,16);
‘捌’ 请教,php保留两位小数,但不四舍五入
使用bc一类的函数,按字符串方式运算即可。
/**
*数值非四舍五入保留两位小数
*@authorZjmainstay
*@websitehttp://www.zjmainstay.cn
*@param$num数值
*@return保留两位小数
*/
functiongetNum($num,$scale=2){
$numStr=(string)$num.str_repeat('0',$scale);
//匹配精度前的数值
if(preg_match('#^d+.d{0,'.$scale.'}#',$numStr,$match)){
return$match[0];
}else{
return'0';
}
}
echogetNum(10.0253)." ";
echogetNum(0.5)." ";
‘玖’ PHP GET参数特殊符号有什么规律
这是URI(Uniform Resource Identifier)编码如果URL中有汉字,就必须编码后使用
例如,":"字符用十六进制来表示为3A,所以必须使用%3A来表示,"/"字符用十六进制来表示为2F,所以必须使用%2F来表示"/"字符。
一般空格是转换为加号 汉字以及特殊字符都要根据16进制的内容再在前门加一个%进行转换
而这里面分为不同的编码规则 有GBK、UTF8 所以在编码的时候要进行设置
下面是一个java获取字符串编码的例子
//百分比编码:获取某个字符的URL编码,编码是用URLEncoder.encode(),解码是用URLDecoder.decode()函数
Stringtext;
try{
text=URLEncoder.encode("http://.com","iso-8859-1");
System.out.println(text);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
‘拾’ php中整形转换为浮点型,并精确的小数点后两位
PHP 中sprintf函数可以将整数格式化为浮点格式。比如格式化参数:%nf;其中,n 表示小数点后的位数。比如:
<?php
$num=9.8;
$res=sprintf("%.2f", $num);
//输出:9.80
?>
