较长数字 字符串 的比较问题 本帖最后由 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本身的代码和文档有关系 PHP过滤字符 请教:调用获取的变量值 utf8 16进制的中文字符转换成普通字符 请问在php中如何执行.vbs 100分求助——关于用php生成有固定行和列的excel文件 chinaRen首页上可以拖动的表格是如何实现的? 我的正则为何不对 谁给个mysql下载地址啊 !谢谢~~~~ 这是什么破论坛?打开个问题就要弹出个窗口。 php连接sql失败 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个字节