PHP intval()和int()的奇妙玩法

int intval ( mixed $var [, int $base ] ) 通過使用特定的進(jìn)制轉(zhuǎn)換(默認(rèn)是十進(jìn)制),參數(shù)base表示進(jìn)制悬秉,只有當(dāng)var是字符串時澄步,base才會有意義,表示按照base進(jìn)制來對var進(jìn)行轉(zhuǎn)換和泌,返回變量 var 的 integer 數(shù)值村缸。

intval()而言,如果參數(shù)是字符串武氓,則返回字符串中第一個不是數(shù)字的字符之前的數(shù)字串所代表的整數(shù)值梯皿。如果字符串第一個是‘-'仇箱,則從第二個開始算起。如果參數(shù)是符點(diǎn)數(shù)东羹,則返回他取整之后的值剂桥。 當(dāng)var是一個array時候,var為空則返回0属提,不為空則返回1

例如:intval("12ab3") 返回的是12

intval("ab123")返回的是0

intval("-1ab2")返回的是-1

intval(12.3223)=12

intval("100", 2) = 4 100按照2進(jìn)制看就是4

intval(array()) = 0

intval(array(1,2)) = 1

=====================================

int()的效果其實(shí)和intval一樣权逗,只是效率貌似不如intval高

如果需要判斷一個字符串是否為純數(shù)字,不能使用intval轉(zhuǎn)換冤议,必須使用is_numeric($var)斟薇,如果var為純數(shù)字,則返回true恕酸,否則返回false

is_numeric("12a") = false

is_numeric("123") = true

is_numeric("9.2") = true

判斷純數(shù)字也可以使用正則表達(dá)式 preg_match('/^\d+$/i', $var)

二堪滨,php有BC高精確度函數(shù)庫;

<?php $f = 0.58;var_dump(intval($f * 100)); //為啥輸出57?>

小數(shù)在二進(jìn)制的表示,關(guān)于小數(shù)如何用二進(jìn)制表示,大家可以百度一下,我這里就不再贅述蕊温;

你看似有窮的小數(shù),在計(jì)算機(jī)的二進(jìn)制表示里卻是無窮的

$a = 0.1;
$b = 0.7;
var_dump(($a + $b) == 0.8);
打印出來的值為 boolean(false);

顯然簡單的十進(jìn)制分?jǐn)?shù)如同 0.1 或 0.7 不能在不丟失一點(diǎn)點(diǎn)精度的情況下轉(zhuǎn)換為內(nèi)部二進(jìn)制的格式椿猎。這就會造成混亂的結(jié)果:例如,floor((0.1+0.7)*10) 通常會返回 7 而不是預(yù)期中的 8寿弱,因?yàn)樵摻Y(jié)果內(nèi)部的表示其實(shí)是類似 7.9999999999…犯眠。

和一個事實(shí)有關(guān),那就是不可能精確的用有限位數(shù)表達(dá)某些十進(jìn)制分?jǐn)?shù),例如,十進(jìn)制的 1/3 變成了 0.3333333. . .。

所以永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位,也永遠(yuǎn)不要比較兩個浮點(diǎn)數(shù)是否相等,如果確實(shí)需要更高的精度,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者 gmp 函數(shù)

bcadd — 將兩個高精度數(shù)字相加

bccomp — 比較兩個高精度數(shù)字症革,返回-1, 0, 1

bcdiv — 將兩個高精度數(shù)字相除

bcmod — 求高精度數(shù)字余數(shù)

bcmul — 將兩個高精度數(shù)字相乘

bcpow — 求高精度數(shù)字乘方

bcpowmod — 求高精度數(shù)字乘方求模筐咧,數(shù)論里非常常用

bcscale — 配置默認(rèn)小數(shù)點(diǎn)位數(shù),相當(dāng)于就是Linux bc中的”scale=”

bcsqrt — 求高精度數(shù)字平方根

bcsub — 將兩個高精度數(shù)字相減

實(shí)例:
$a = 1.098977676767;

$b = 4.000000000009;

var_dump(bcadd($a, $b, 2)); //5.09

echo '
';

var_dump($a + $b);//5.098977676776

echo '
';

var_dump(bcmul($a, $b, 2));//4.39

echo '
';

echo $a * $b;//4.3959107070779

echo '
';

var_dump(bcsub($a, $b, 2));//-2.90

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末噪矛,一起剝皮案震驚了整個濱河市量蕊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艇挨,老刑警劉巖残炮,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缩滨,居然都是意外死亡势就,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門脉漏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苞冯,“玉大人,你說我怎么就攤上這事侧巨【顺” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵司忱,是天一觀的道長皇忿。 經(jīng)常有香客問我畴蹭,道長,這世上最難降的妖魔是什么鳍烁? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任叨襟,我火速辦了婚禮,結(jié)果婚禮上老翘,老公的妹妹穿的比我還像新娘。我一直安慰自己锻离,他們只是感情好铺峭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汽纠,像睡著了一般卫键。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虱朵,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天莉炉,我揣著相機(jī)與錄音,去河邊找鬼碴犬。 笑死絮宁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的服协。 我是一名探鬼主播绍昂,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偿荷!你這毒婦竟也來了窘游?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤跳纳,失蹤者是張志新(化名)和其女友劉穎忍饰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寺庄,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡艾蓝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了斗塘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饶深。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逛拱,靈堂內(nèi)的尸體忽然破棺而出敌厘,到底是詐尸還是另有隱情,我是刑警寧澤朽合,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布俱两,位于F島的核電站饱狂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宪彩。R本人自食惡果不足惜休讳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尿孔。 院中可真熱鬧俊柔,春花似錦、人聲如沸活合。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽白指。三九已至留晚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間告嘲,已是汗流浹背错维。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橄唬,地道東北人赋焕。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像仰楚,于是被迫代替她去往敵國和親宏邮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容