有关浮点数的细节
1:浮点数不应直接进行大小比较!
先看一个现象:
可见:浮点数直接进行比较是“不可靠的”。
原因是:浮点数在内存中的二进制形式(最底层的形式),是不精确的,比如:
那如果需要(其实这很常见)进行浮点数比较,该怎么办?
考虑现实应用所需的精度要求的基础上,来讲他们转换为整数后进行比较!
比如:
要求精确到3位小数,就都乘以1000后取整再比较;
要求精确到2位小数,就都乘以100后取整再比较;
要求精确到4位小数,就都乘以10000后取整再比较;
举例:
字符串类型
· 单引号字符串:
· 双引号字符串:
· 定界符字符串heredoc:
还可以使用特定形式的字符串,被称为定界符字符串,有两种:heredoc, nowdoc
形式:
$s1 = <<
字符串内容。。。。
标识符;
举例:
结果:
· 定界符字符串nowdoc:
形式:
$s1 = <<
字符串内容。。。。
标识符;
举例:
结果为:
可见:在单引号定界符(nowdoc)中,有一个特点就是:写什么就是什么!
双引号字符串中识别变量的演示:
类型转换问题
php是一种弱类型语言,其特点是:变量可以存储任何类型,而不受限制!
有两种类型转换:
自动转换
自动转换,是指,没有转换语法,但在具体的语句(或表达式)中,会根据具体的情形,将某种类型的数据,转换为另一种类型,然后进行运算。
典型情况是:某种运算符“理应”使用某种类型的数据,但给定的数据不是该种类型,就是发生自动转换;
$v1 = “abc” * “def”; //这里就会发生自动转换,2个字符串其实都转换为0然后进行运算
$v2 = “2” * “3”; //这里也会发生自动转换,结果是6
强制转换:
就是,使用特定的语法,将某个数据,从其“原来的类型”,转换为设定的目标类型;
形式如下:
(目标类型) 数据