首页 >> 读书频道 >> 电脑 >> 整型
 
· 布尔型
· 介绍
· 注释
· 指令分隔符
· 从 HTML 中分离
· 隐藏 PHP
· 用户提交的数据
· 利用全局变量注册(Reg
· 错误报告
· 数据库安全
· 文件系统安全
· ASP.NET高级教程(
 
· 国家六部门联合发文
· 红楼梦:120回全本[清
· 常见图像文件格式详解
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

整型


查看有无更新版本

关键字:PHP 2006-9-22

 

一个 integer 是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的一个数。

参见任意长度整数 / GMP,浮点数 和 任意精度数学库 / BCMath。

语法
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。

如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。 例子 7-1. 整数文字表达

<?php
$a = 1234; # 十进制数
$a = -123; # 一个负数
$a = 0123; # 八进制数(等于十进制的 83)
$a = 0x1A; # 十六进制数(等于十进制的 26)
?>
 
 
在字面上,整型变量正式的结构可以为:


<?php
decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal
?>
 


整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。PHP 不支持无符号整数。

整数溢出
如果你指定一个数超出了 integer 的范围,将会被解释为 float。同样如果你执行的运算结果超出了 integer 范围,也会返回 float。


<?php
$large_number =  2147483647;
var_dump($large_number);
// 输出为:int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// 输出为:float(2147483648)

// 同样也适用于十六进制表示的整数:
var_dump( 0x80000000 );
// 输出为:float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// 输出为:float(50000000000)
?>
 

 

警告
不幸的是 PHP 中有个 bug,因此当有负数参与时结果并不总是正确。例如当运算 -50000 * $million 时结果是 -429496728。不过当两个运算数都是正数时就没问题。

这个问题已经在 PHP 4.1.0 中解决了。
 


PHP 中没有整除的运算符。1/2 产生出浮点数 0.5。您可以总是舍弃小数部分,或者使用 round() 函数。


<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>
 

 

转换为整形
要明示地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。您还可以通过函数 intval() 来将一个值转换成整型。

参见类型戏法。

从布尔值转换
FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。

从浮点数转换
当从浮点数转换成整数时,数字将被取整(丢弃小数位)。

如果浮点数超出了整数范围(通常为 +/- 2.15e+9 = 2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!

(译者注:)在 Linux 下返回结果是最小负数(-2147483648),而在 Windows 下返回结果是零(0)。


警告
决不要将未知的分数强制转换为 integer,这样有时会导致意外的结果。


<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7!
?>
 


更多信息见浮点数精度。
 

从字符串转换
参见字符串转换为数字。

从其它类型转换


注意
没有定义从其它类型转换为整型的行为。目前的行为和值先转换为布尔值一样。不过不要依靠此行为,因为它会未加通知地改变。
 


 

整型

[ 1 ]
整型 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑