在網上看到過這樣三種做法,下面來跟大家討論下,如有問題,歡迎指出,大家共同學習
1,is_int來進行判斷
if(is_int(2.0))else
輸出非整數
一般情況下,是可以判斷出來的,但是如果給出的數字是2.0類似這樣的,這樣的判斷方式就會出現問題,所以這種做法不對
2,floor ,ceil
$a = 2.0;
if(floor($a)==$a)else
輸出整數
用這樣的取整函式,這樣這種做法是可以的
3,正則判斷
**片段
$reg = '/^[0-9][0-9]*$/'
$goods_number = '0';
if( preg_match($reg,$goods_number))else
輸出整數
以上是我自己總結的幾種方法,第二種第三種經過自己的測試是可以的,如過發現有問題,可以提醒下我^_^
接著通過手冊又發現幾個這樣的php判斷函式,如ctype_digit,is_numeric(這個可以判斷16進製制數)。有興趣的朋友可以自己去測測,研究研究
判斷整數溢位
c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...
判斷整數A B C
注意點 1 要注意資料型別。int表示的範圍是 2 31 2 31 1,所以不能用int,而且a b的範圍可能超過int,所以得用long long。整數範圍速查 char 128 127 1 byte short 32767 32768 2 bytes unsigned short 0 65536...
整數溢位,如何判斷整數溢位
c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...