[PHP]解決PHP沒有整數除法的問題

有時候在寫PHP時,若是遇到了除法就是一個問題,為什麼呢?因為PHP沒有整數除法,所以除出來的東西會有小數點,但是需要使用的地方並不需要小數點,這時候該怎麼解決這樣的問題呢?上網爬了一下文章,好像有個「floor」的函式可以使用,經過使用後,問題確實解決了,所以就發這篇來筆記一下,以後忘記可以來參考。

如同其他語言一樣,PHP也有幾種除法,像是取餘數與浮點運算之類的,不過卻沒有整數除法。爬了一下網路資料,發現有個函式「floor」可以使用,所以到PHP官方網站看了一下,這個函式就是取整數的函式。


至於使用方法呢?那就是把你的數字丟到函式中就會輸出整數部分了,以官方的例子來看,就是:

<?php
echo floor(4.3);   // 計算後為:4
echo floor(9.999); //計算後為: 9
echo floor(-3.14); // 計算後為:-4
?>

如果說換成變數呢?那大概是像以下這樣的情況,以下方法寫的比較煩雜,大家應該比較好理解,當然您會的話可以把他精簡:

<?php

$number = 15.33; //宣告number為15.33

$answer = floor($number); //對15.33取整數

echo $answer; //計算後為:15

?>

再來囉嗦一下,如果是運算後要將有浮點數、小數點的數值取為整數呢?寫法如下,您可以精簡以下語法:

<?php

$number = 28/5; //宣告number為28除以5,答案會是5.6

$answer = floor($number); //對number也就是5.6取整數

echo $answer; //計算後為:5

?>

網友CornGuo補充了另一種方法,這應該是宣告為整數型態,讓它變成只有整數部分。因為PHP的變數宣告基本上是可以不用像C語言一樣宣告型態,當然這有好處也有壞處啦!

<?php

$number = 28/5; //宣告number為28除以5,顯示:5.6

echo $number; //顯示number的值,沒有經過處理所以顯示:5.6

echo ‘<br>’; // 換行,不然東西卡在一起就看不清楚了

echo (int)($number); //將字串轉成整數型態,顯示:5

echo ‘<br>’; //再換行一次

echo intval($number); // 取number的值為整數,顯示: 5

?>
以上只是單純的小筆記順便跟大家分享,以後這類的文章可能會有點多,畢竟最近在寫畢業專題,有時候查到資料仍需要筆記一下的,方便以後找查XD。