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
?>
