1. 不同进制数表示
十六进制:0x或0X开头
十进制: 1-9开头
八进制:0开头
2进制:0b开头
2. 字节数
与平台有关,64位机器就是64位,32位操作系统就是32位,PHP7之前,windows只能是32bit;位数通过PHP_INT_SIZE设置,最大值使用常量PHP_INT_MAX (5.0.4), 最小值 PHP_INT_MIN(7.0.0)
3.类型转换
1. float和double 的存储
所以,关于整数部分在确保精度的范围内:
int(假设为32位)能表示的最大范围为 -2^31 ~ 2^31 - 1;
float能表示的最大的最大的整数范围是: -2^24 ~ 2^24;
double能表示的最大的最大的整数范围是: -2^53 ~ 2^53;
所以,当一个非常大的float数转为为32位整形时可能会丢失精度,即使float可以表示很大范围的整数。
2. 浮点数精度问题
详细参考:http://floating-point-gui.de/
而
floor((0.1 + 0.7) * 10) // 输出7,因为内部存储类似于7.9999999999999991118....
关于浮点型的使用:
- 小数的随后一位不可靠
- 不要使用小数来做相等比较
3. php强制类型转化
(int) True //1;
(int) False //0;
(int) Array() //0;
(int) Array('1', 'b') //1;
float round(float $val, int $precise)