Ⅰ php 怎麼判斷post或get的值是否為小數或者整數
在日常的php開發中,我們可能會碰到,需要判斷Get或者Post的數值是否為整型或者是浮點型、是否含有小數
由於php是弱類型語言,很多初次做php開發的程序員對php的數據類型並不是很關注或者熟悉,但是在一些的常見業務實現中往往需要對數據類型進行判斷!
分享一個前段時間在業務實現過程中遇到的問題!
比如這樣的一個連接:www.davup.com/index.php?add=1000.1
以往正常的邏輯中會直接拿來get['add'] 進行
is_number()【判斷是否為數值】
is_float()【是否為小數】
來進行判斷。結果發現這樣的處理方式是錯位的 ! 因為 無論是Post的數據或者是Get的數據,在php中得到的 值得數據類型都是字元串!
所以,上面兩個函數是不能正常使用的, 只能用字元串函數來處理! 最簡單的方式就是使用strstr(get['add'],'.'); 【判斷是否含有小數點,如果含有小數點,就返回真,沒有就返回假】!
Ⅱ php如何保留一位小數,包括0,內詳
number_format(變數,保留位數)
Ⅲ 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 中的 round() 函數可以實現
round() 函數對浮點數進行四捨五入。
round(x,prec)
參數說明
x 可選。規定要舍入的數字。
prec 可選。規定小數點後的位數。
返回將 x 根據指定精度 prec (十進制小數點後數字的數目)進行四捨五入的結果。prec 也可以是負數或零(默認值)。
注釋:PHP 默認不能正確處理類似 "12,300.2" 的字元串。
例如:
<?php
echo round(-4.635,2);
?>
輸出: -4.64
Ⅳ 在PHP中怎麼取小數點後的位數,如:23.43453 要保留兩位小數怎麼取
round(23.43453,2);
四捨五入保留小數點後兩位
Ⅵ PHP如何判斷變數是整數還是小數
is_float — 檢測變數是否是浮點型
http://cn.php.net/manual/zh/function.is-float.php
is_int — 檢測變數是否是整數
http://cn.php.net/manual/zh/function.is-int.php
$a=12345;
$b=123.45;
var_mp(is_float($a));//false;
var_mp(is_int($a));//true;
var_mp(is_float($b));//true;
var_mp(is_int($b));//false;
Ⅶ PHP如何顯示兩位小數
一round()函數:
floatround(float$val[,int$precision])
返回將val根據指定精度precision(十進制小數點後數字的數目)進行四捨五入的結果。
precision也可以是負數或零(默認值)。
例如:
echoround(3.6);//4
echoround(3.6,0);//4
echoround(1.95583,2);//1.96
$a=12345678;
echoround($a,-3);//12346000
但是有時候如遇到這樣的數字就不行了,12.3,13.4,15,6
//我們要轉為12.30,13.40,15,60,這樣的值,就得用另外一種強大的方法了。
二sprintf()[或者printf()函數]函數
此函數源於c中強的printf()函數。所以是一個強大的格式化工具。
說明:
stringsprintf(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判斷變數是否是整數的兩種方法
1、如果你確定你的變數是數字,php有內置的判斷函數:is_int 檢測變數是否是整數;
2、但是有時候往往我們接收到的變數是數字或數字字元串(如表單輸入,它們通常為字元串),這樣我們就不能用is_int()函數來簡單判斷是否為整數,我們需要用到is_numeric()和strpos()函數來判斷是否為整數:
(1)用is_numeric()函數判斷是否為數字或數字字元串;
(2)用strpos()判斷數字中是否含有小數點;
if(!is_numeric($age)||strpos($age,".")!==false){
echo"不是整數";
}else{
echo"是整數";
}
Ⅸ 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);
}