源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP 第二节 数据类型之数值型

  • 时间:2020-04-10 13:21 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP 第二节 数据类型之数值型
[b]PHP 支持8种基本的数据类型。[/b] 四种标量类型: [list] [*]boolean (布尔型) [/*][*]integer (整型) [/*][*]float (浮点型, 也称作 double) [/*][*]string (字符串) [/*][/list] 两种复合类型: [list] [*]array (数组) [/*][*]object (对象) [/*][/list] 最后是两种特殊类型: [list] [*]resource (资源) [/*][*]NULL (NULL) [/*][/list] [b]boolean[/b]数据类型: 取值只能为True或者False,当其他类型转化为boolean类型时,以下值被认为是 [code]FALSE[/code]: [list] [*]the 布尔值 [code]FALSE[/code] 自身 [/*][*]the 整型值 0 (零) [/*][*]the 浮点型值 0.0 (零) [/*][*]字符串, 以及字符串 "0" [/*][*]不包括任何元素的数组 [/*][*]不包括任何成员变量的对象(仅PHP 4.0 适用) [/*][*]特殊类型 NULL (包括尚未设定的变量) [/*][*]从没有任何标记(tags)的XML文档生成的SimpleXML 对象 [/*][/list] 所有其它值都被认为是 [code]TRUE[/code](包括任何资源)。 [b]integer数据类型:[/b] 整型值可以使用十进制,十六进制或八进制进行表示,前面可以加上可选的符号(- 或者 +)。 八进制表示数字前必须加上 [i]0[/i](零),十六进制表示数字前必须加上 [i]0x[/i]。 整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。PHP 不支持无符号整数。Integer值的字长可以用常量[b][code]PHP_INT_SIZE[/code][/b]来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量[b][code]PHP_INT_MAX[/code][/b]来表示。 如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。 PHP 中没有整除的运算符。[i]1/2[/i] 产生出 float [i]0.5[/i]。可以总是舍弃小数部分,或者使用 round() 函数。 要明确地将一个值转换为 integer,用 [i](int)[/i] 或 [i](integer)[/i] 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。
[h3]布尔值转换,[code]FALSE[/code] 将产生出 [i]0[/i](零),[code]TRUE[/code] 将产生出 [i]1[/i](壹)。[/h3]
[h3]浮点数转换,当从浮点数转换成整数时,将[i]向零[/i]取整。如果浮点数超出了整数范围(通常为 [i]+/- 2.15e+9 = 2^31[/i]),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知![/h3] [b]float数据类型 [/b] 浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64 位 IEEE 格式)。 显然简单的十进制分数如同 [i]0.1[/i] 或 [i]0.7[/i] 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,[i]floor((0.1+0.7)*10)[/i] 通常会返回 [i]7[/i] 而不是预期中的 [i]8[/i],因为该结果内部的表示其实是类似 [i]7.9[/i]。 这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 [i]1/3[/i] 变成了 [i]0.3[/i]。 所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用[url=http://www.php.net/manual/zh/ref.bc.php]任意精度数学函数[/url]或者 [url=http://www.php.net/manual/zh/ref.gmp.php]gmp 函数[/url]。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部