一个 integer 是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的一个数。
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。
如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。
结果:
a1=1234
a2=-123
a3=83
a4=26
整数溢出
结果:
int(2147483647) float(2147483648) float(2147483648)
这里给大家介绍一种情况:
结果:float(-2147483648) int(-2147483648)
这里,PHP把-214783648当做float处理,但是却把-214783647-1作为int。
如果给定的一个数超出了 integer的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分(int()取的是整数部分),或者使用 round() 函数(四舍五入)。
结果:
float(3.57142857143) int(3) float(4)
转换为整型
要明示地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer参数时,值会自动转换。还可以通过函数 intval()来将一个值转换成整型。
从布尔值转换
FALSE产生0。TRUE产生1.
从浮点数转换
当从浮点数转换成整数时,数字会被取整(小数部分丢弃)。
因为PHP不支持无符号的整数,所以在处理它们时经常会出现错误。
结果:7fffffff
但是正确的结果应该是:A269BBA6,那么怎样才能获得正确的值呢?
结果正确!