php 不支持无符号整数,是否可以使用大型无符号int64而不会在PHP中失去精度?
標簽:php
我了解整數(shù)大小,PHP_INT_MAX與平臺有關.
在64位系統(tǒng)上,我可以獲得:
$large_number = 9223372036854775807
Unsigned Int64: 18446744073709551615
PHP will handles as: 1.844674407371E+19
因此,似乎所有精度都只能達到Signed Int64的最大值.
這真的只是PHP的限制,我對此無能為力嗎?
解決方法:
是的,這是PHP的局限性,除了重新編譯PHP解釋器外,您無能為力.即使這樣,您仍然受限于本機系統(tǒng)支持的類型,這些類型通常不會超過64位.如您所知,您可以使用GMP或BCMath,但這不是您要的.
在后臺,根據(jù)您的系統(tǒng),PHP integer和PHP floating point類型對應于帶符號的C整數(shù)類型和C浮點類型(PHP始終對“ floats” AFAIK使用C雙精度).這是靜態(tài)關系,編譯后不能更改.由于C類型具有固定的精度,因此PHP確實也具有.
浮點數(shù)的“溢出”只是一個方便的折衷,因此您可以存儲很大的數(shù)字,而不是根本不存儲.是的,您會損失一些精度,但僅限于significand.PHP不會自動將數(shù)字轉換為其他更大精度的浮點格式,因為它沒有整數(shù).
標簽:php
來源: https://codeday.me/bug/20191010/1888621.html
總結
以上是生活随笔為你收集整理的php 不支持无符号整数,是否可以使用大型无符号int64而不会在PHP中失去精度?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017 php7 使用率,让PHP7达
- 下一篇: php中extends是什么意思,在ph