国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP 浮點型與整型比較的小坑

付永剛 / 899人閱讀

摘要:今天我們來看一個在中比較有意思的事浮點數(shù)你認為上面的代碼會出現(xiàn)什么結(jié)果呢這種比較視情況而定其實很簡單,因為在這里,我們使用了來做比較,所以這個結(jié)果很清晰的就是,因為我們左邊是一個類似的數(shù),右邊是一個類型的數(shù)。如果你這樣想的話,那你就錯了。

今天我們來看一個在 PHP 中比較有意思的事:浮點數(shù)(floats)


你認為上面的代碼會出現(xiàn)什么結(jié)果呢?1. true 2. false 3. 這種比較視情況而定

其實很簡單,因為在這里,我們使用了 === 來做比較,所以這個結(jié)果很清晰的就是 false,
因為我們左邊是一個 floats 類似的數(shù),右邊是一個 int 類型的數(shù)。
這是沒什么可以特別討論的。

那如果是這樣呢?


就是我們使用 == 來比較的時候呢?

你可能會這樣想:左邊 120085,右邊 120085,所以結(jié)果是 true。

如果你這樣想的話,那你就錯了。其實你運行上面的代碼,結(jié)果回是 false。

然而,我是說然而!你再嘗試修改一下數(shù)字,在運行一次代碼,比如這樣:


你會發(fā)現(xiàn)結(jié)果非常神奇,這個時候結(jié)果是 true,所以說,這種比較其實還真是視情況而定。

那么問題出現(xiàn)在哪里呢?我們試著運行下面的代碼:


結(jié)果會類似這樣:

float(120085) int(120085)

好像沒看出什么核心區(qū)別,我們這樣再試試:

die(var_dump(120085 - 1200.85 * 100));

這個時候的結(jié)果應該是這樣:

float(1.4551915228367E-11)

這就說明問題了,其實這個結(jié)果并不是 0 ,而是一個很小的 floats 類似的數(shù)。
如果你看 PHP 文檔的時候:http://php.net/manual/zh/lang...
有注意那個很大的 Warning 的話,你應該就會明白:這里的核心問題其實就是浮點數(shù)的精度!

那這樣的話,我們?nèi)绾伪容^才是我們期望的值呢?

答案就是使用 round() 函數(shù),像是這樣:

die(var_dump(round(1200.85 * 100) == 120085));

所以吧,在使用 PHP 做這些精度計算比較的時候,一定要實測它的比較結(jié)果,或者是使用一些保險的手段進行比較,不然就會吃大虧!
關(guān)注公眾號 codecasts ,每天更新 PHP Laravel 技能

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26114.html

相關(guān)文章

  • C語言:深度刨析數(shù)據(jù)在內(nèi)存中存儲——浮點型數(shù)據(jù)

    摘要:一浮點型數(shù)據(jù)及其取值范圍二浮點型數(shù)據(jù)在內(nèi)存中的存儲一小數(shù)的二進制十進制轉(zhuǎn)二進制整數(shù)部分與整數(shù)原理相同,按照整數(shù)二進制轉(zhuǎn)換的規(guī)則,寫成對應的二進制數(shù)。全為表示浮點數(shù)的最大值或者最小值。 ...

    YanceyOfficial 評論0 收藏0
  • python數(shù)據(jù)類型——數(shù)字

    摘要:例如返回的結(jié)果并不是,而是冪指數(shù)取余賦值給變量使用函數(shù)來查看變量類型整型數(shù)字的最大最小值在位系統(tǒng)中,一個整型個字節(jié),最小值,最大值。事實上,中儲存的值為,因為這是最接近的浮點數(shù)。 整型 Integers 整型運算,加減乘: 2 + 2 4 3 - 4 -1 4 * 5 20 在Python 2.7中,整型的運算結(jié)果只能返回整型,除法的結(jié)果也不例外。 例如12 / ...

    Jingbin_ 評論0 收藏0
  • 【數(shù)據(jù)類型存儲原理】數(shù)據(jù)存儲 - 深度剖析數(shù)據(jù)在內(nèi)存中存儲

    摘要:數(shù)據(jù)的存儲前言數(shù)據(jù)類型匯總整型家族浮點型家族自定義類型指針類型。整型家族注在之后的標準規(guī)定,將類型數(shù)據(jù)劃分為整型家族,因為字符在內(nèi)存中會將其轉(zhuǎn)化為碼值進行存儲。 ...

    yuanzhanghu 評論0 收藏0
  • 淺析二進制與int范圍/IP計算及PHP應用

    摘要:前言對于程序員的世界,一切東西皆二進制。地址的計算根據(jù)常識,的每一位的區(qū)域只有在區(qū)間。根據(jù)它的二進制就明了。查詢的話,數(shù)字效率是高于字符串的。 前言 ??對于程序員的世界,一切東西皆二進制。 PHP整型長度與二進制原理 ??我們一直說的整型有32位,很多人都說整型數(shù)最大值有2^32 -1,其實這個相對于無符號整型數(shù),那么這里來談論下有符號整型數(shù)。一個整型占四個字節(jié),每個字節(jié)有8bit,...

    宋華 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<