ceil函數php,ceil函數和floor函數的用法

本文目錄一覽:

php里ceil函數和intval函數有什麼區別 ?

ceil(x)接受一個浮點數x,返回比x大的最小整數

ceil(3.21) = 4

ceil(9.0) = 9

ceil(-2.333) = 2

intval返回一個整數,接受2個參數,第一個是數或者包含數的字元串,第二個參數是第一個參數使用的進位,除非第一個參數是字元串,否則第二個參數沒有作用,參數中如果有小數,小數部分將被截斷

inval(123.999) = 123

inval(33.123) = 33

intval(‘c’, 16) = 12

intval(1000, 2) = 8

intval(‘1000’, 2) = 8

請教,php保留兩位小數,但不四捨五入

php四捨五入函數有:floor函數、ceil函數、round與intval

使用floor函數:

$a=1.23456;

echo floor($a*100)/100;

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用小數點相減不對呢

一則浮點數計算例子如下:

代碼如下:

$a = 0.2+0.7;

$b = 0.9;

var_dump($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_dump(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取整的幾種方式

具體代碼如下:

?php

$ch = curl_init();

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, ”);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

echo $file_contents;

?

PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。

它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,

執行效率比完全生成HTML標記的CGI要高許多;

PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

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

?

輸出:

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

?

:

$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’);

輸出結果

如果是

intval(‘5fd’);

輸出結果是

5

原創文章,作者:UNMU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144047.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UNMU的頭像UNMU
上一篇 2024-10-24 15:27
下一篇 2024-10-24 15:27

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • 分段函數Python

    本文將從以下幾個方面詳細闡述Python中的分段函數,包括函數基本定義、調用示例、圖像繪製、函數優化和應用實例。 一、函數基本定義 分段函數又稱為條件函數,指一條直線段或曲線段,由…

    編程 2025-04-29

發表回復

登錄後才能評論