较长数字 字符串 的比较问题 本帖最后由 anyilaoliu 于 2013-12-13 15:04:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这一点学习了另外,今天又再次尝试了下发现我的环境下,两个string格式的18位长度的阿拉伯数字, ==运算符比较依然会忽略后两位, 应该是内部进行了数字转换而在另一个环境下 则没有出现这个问题,两个字符串可以正确的按照字符串来使用 == 运算符求教大约是什么设置或者扩展导致这个现象的发生. 我们使用的php环境大多是32位的,而在32位环境中一个长整型数是用4个字节表示的即 -pow(2,31) 到 pow(2,31) 之间pow(2,31) = 2147483648pow(2,32) = 4294967296这显然不能满足一般的需要,所以 php 在 logn 类型的基础上做了一些扩充。用了6个字节存储1个整型数也就是可表示 -99999999999999 到 99999999999999 之间的正数,即 14 位整数而在64位的php中就可轻易的突破这一限制了,因为64位的环境中,一个logn类型本身就是8个字节 非常感谢xu大 解惑很到位,之前我为什么没有想到64位和32位的问题呢... 当然,这也跟我没有细看过PHP本身的代码和文档有关系 include引入文件 php环境下的object 征询见议 我们公司招PHP程序员 (哈尔滨) 虚拟主机如何配置日志文件?并实现不同权限的访问? $k = "10"; $e = ">"; $v = "5"; ( $k > $v )的表达式该怎么写啊?主要是$e是动态的。 php代码求分析 怎样实现一个界面登陆到另一个界面? php无法获取GET和POST发送的变量?? 关于百度的站内搜索 结果页面设置 php的网站刷新浏览速度感觉有点慢 为什么新浪博客这样做呢
这一点学习了另外,今天又再次尝试了下发现我的环境下,两个string格式的18位长度的阿拉伯数字, ==运算符比较依然会忽略后两位, 应该是内部进行了数字转换而在另一个环境下 则没有出现这个问题,两个字符串可以正确的按照字符串来使用 == 运算符求教大约是什么设置或者扩展导致这个现象的发生.
即 -pow(2,31) 到 pow(2,31) 之间
pow(2,31) = 2147483648
pow(2,32) = 4294967296
这显然不能满足一般的需要,所以 php 在 logn 类型的基础上做了一些扩充。用了6个字节存储1个整型数
也就是可表示 -99999999999999 到 99999999999999 之间的正数,即 14 位整数而在64位的php中就可轻易的突破这一限制了,因为64位的环境中,一个logn类型本身就是8个字节