phpceil
① 在php里$d2=ceil(($d1-time())/60/60/24)表示什麼意思,怎麼理解
首先$d1應該是一個時間戳,
$d1-time表示某個時間點到當前時間的長度,
($d1-time())/60/60/24表世薯示某個時間點到當前時間有多少天,
ceil(($d1-time())/60/60/24)是向上取整數,比如ceil(4.3) =5。
希望能幫到你,望采侍滑納搜談者,謝謝。
② php使用哪個函數實現向上取整,哪個函數實現向下取整
向上取整,有小數就加1:ceil();
向下取整:floor()。
③ PHP怎麼實現整除
如果我們使用』/'操作符進行除法運算時,如果遇到無法除盡的情況,會得到小數值。如果我只希望得到整數部分,怎麼辦呢?
在PHP的數學函數庫里提供了多個函數供我們選擇:
1、round函數, 對浮點數進行四捨五入。這個應該是最符合大家需要的吧。
< php echo round(10/3); // 3 >
2、ceil函數, 進一法取整。
< php echo ceil(4.3); // 5 >
3、floor ,捨去法取整,捨去小數部分
< php echo floor(4.3); // 4 echo floor(9.999); // 9 >
④ php取整的幾種方式
php最常用的是下面兩個函數:
floor(),向下取整,捨去所有小數位,整數位不變。
ceil(),向上取整,小數全部捨去,整數位加一。
⑤ php程序如何實現四捨五入和無條件捨去、無條件進入法
floor() 函數:
<?php
echo(floor(0.60));
echo(floor(0.40));
echo(floor(5));
echo(floor(5.1));
echo(floor(-5.1));
echo(floor(-5.9))
?>
輸出
0
0
5
5
-6
-6
ceil() 函數向上舍入為最接近的整數。
<?php
echo(ceil(0.60);
echo(ceil(0.40);
echo(ceil(5);
echo(ceil(5.1);
echo(ceil(-5.1);
echo(ceil(-5.9));
?>
輸出
1
1
5
6
-5
-5
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
等函數
⑥ 為什麼php用小數點相減不對呢
一則浮點數計算例子如下:
代碼如下:
$a = 0.2+0.7;
$b = 0.9;
var_mp($a == $b);
列印出的結果是:bool(false)。也就是說在這里 0.2+0.7 的計算結果與 0.9 並不相等,這顯然是有違我們的常識的。
對此問題,PHP官方手冊曾又說明:顯然簡單的十進制分數如 0.2 不能在不丟失一點點精度的情況下轉換為內部二進制的格式。這和一個侍舉事實有關,那就是不可能精確的用有限位數表達某些十進制分數。例如,十進制的 1/3 變成了 0.3333333...。
我們將上面的變數用雙精度格式列印出來:
代碼如下:
$a = 0.2+0.7;
$b = 0.9;
printf("%0.20f", $a);
echo '<br />';
printf("%0.20f", $b);
輸出結果如下:
代碼如下:
0.89999999999999991118
0.90000000000000002220
顯然在這里,實際上作為浮點型數據,其精檔閉度已經損失了一部分,達不到完全精確。所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。需要說明的是,這不是PHP的問題,而是計算機內部處理浮點數的問題!在 C、JAVA 等語言中也會遇到同樣的問題。
所以要比較兩個浮點數,需要將其控制在我們需要的精度范圍內再行比較,因此使用 bcadd() 函數來對浮點數想加並進行精度轉換(為老蠢碧字元串):
代碼如下:
var_mp(bcadd(0.2,0.7,1) == 0.9); // 輸出:bool(true)
浮點數取整
在《PHP 取整函數 ceil 與 floor》一文中,曾有例子:
代碼如下:
<?php
echo ceil(2.1/0.7); // 輸出:4
?>
經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的:
代碼如下:
<?php
printf("%0.20f", (2.1/0.7)); // 輸出:3.00000000000000044409
?>
經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的,因此使用 round() 函數處理一下即可:
代碼如下:
<?php
echo ceil( round((2.1/0.7),1) );
?>
雖然 round() 函數是按照指定的精度進行四捨五入,但保留小數點後一位,對我們的取整結果是沒影響的。
⑦ php中的四捨五入函數代碼(floor函數、ceil函數、round與intval)
floor函數和ceil函數互相搭配起來可以使php
處理的數據更加真實可靠。
一、先來看floor函數:
語法:
float
floor
(
float
value
)
說明:
返回不大於
value
的下一個整數,將
value
的小數部分捨去取整。floor()
返回的類型仍然是
float,因為
float
值的范圍通常比
integer
要大。
floor()
例子
1
<?php
echo
floor(1.6);
//
will
output
"1"
echo
floor(-1.6);
//
will
output
"-2"
?>
floor()
例子
2
<?php
echo(floor(0.60));
echo(floor(0.40));
echo(floor(5));
echo(floor(5.1));
echo(floor(-5.1));
echo(floor(-5.9))
?>
輸出:
0
0
5
5
-6
-6
二、ceil函數:
語法:
float
ceil
(
float
value
)
說明:
返回不小於
value
的下一個整數,value
如果有小數部分則進一位。ceil()
返回的類型仍然是
float,因為
float
值的范圍通常比
integer
要大。
ceil()
例子:
<?php
echo
ceil(4.3);
//
5
echo
ceil(9.999);
//
10
echo
ceil(-3.14);
//
-3
?>
看到這兩個函數的區別了么。。
在分頁時我們會常用到的
//頁碼計算:
$lastpg=ceil($totle/$displaypg);
//最後頁,也是總頁數,用ceil就方便多了。
$lastpg=$lastpg
?
$lastpg
:
1;
//沒有顯示條目,置最後頁為1
$page=min($lastpg,$page);
$prepg=$page-1;
//上一頁
$nextpg=($page==$lastpg
?
0
:
$page+1);
//下一頁
$firstcount=($page-1)*$displaypg;
當然,如果需要制定精度就需要使用round函數了。
三、round函數:
語法:
float
round
(
float
val
[,
int
precision]
)
說明:
返回將
val
根據指定精度
precision(十進制小數點後數字的數目)進行四捨五入的結果。precision
也可以是負數或零(默認值)。
round()
例子
<?php
echo
round(3.4);
//
3
echo
round(3.5);
//
4
echo
round(3.6);
//
4
echo
round(3.6,
0);
//
4
echo
round(1.95583,
2);
//
1.96
echo
round(1241757,
-3);
//
1242000
echo
round(5.045,
2);
//
5.05
echo
round(5.055,
2);
//
5.06
?>
四、intval—對變數轉成整數型態
變數轉成整數類型。
語法:
int
intval(mixed
var,
int
[base]);
返回值:
整數
函數種類:
PHP
系統功能
內容說明
本函數可將變數轉成整數類型。可省略的參數
base
是轉換的基底,默認值為
10。轉換的變數
var
可以為數組或類之外的任何類型變數。
例子intval()
<?php
echo
intval(4.3);
//4
echo
intval(4.6);
//
4
?>
註:intval如果是字元型的會自動轉換為0
如
intval('abc');
輸出結果
0
如果是
intval('5fd');
輸出結果是
5
⑧ php 如何去掉數字小數點後面的零
php去掉數字小數點後面的零:
1、ceil — 進一法取整
說明
float ceil ( float value )
返回不小於 value 的下一個整數,value 如果有小數部分則進一位。ceil() 返回的類型仍然是 float,因為 float 值的范圍通常比 integer 要大。
例子 1. ceil() 例子
<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
?>
2、intval—對變數轉成整數型態
<?php
echo intval(4.3); //4
echo intval(4.6); // 4
?>