php中浮点数相关处理(待完善)

来源:互联网 发布:程序员和设计师 编辑:程序博客网 时间:2024/04/29 19:38

is_numeric与ctype_digit

bool is_numeric ( mixed $var )
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。

bool ctype_digit ( string $text )
检查提供的 string 和 text 里面的字符是不是都是数字。
当使用整数作为参数调用这些函数的时候, 这些函数的行为和 C 语言(ctype.h) 中的对应函数一样。 也就是说,如果传入了小于 256 的整数参数,它会把这个整数当做 ASCII 码值, 来检测对应字符是否符合要求(数值检测的 ASCII 值范围为 0x30-0x39)。 如果传入的参数介于 -128 和 -1 之间(含 -128 和 -1),它会先将其加上 256,然后再进行检测。
需要提醒的是,如果可以满足需求,请优先考虑使用 ctype 函数, 而不是正则表达式或者对应的 “str_*” 和 “is_*” 函数。 因为 ctype 使用的是原生 C 库,所以会有明显的性能优势。
Note:
这个函数的参数要求是一个 string 这一点是非常有用的,因此当你传入一个 integer 的参数也许不能得到期望的结果。然后,同样需要注意HTML表单将会返回数字字符串而不是一个整型。
Note:
如果给出一个 -128 到 255 之间(含)的整数, 将会被解释为该值对应的ASCII字符 (负值将加上 256 以支持扩展ASCII字符). 其它整数将会被解释为该值对应的十进制字符串.

检测输入的是否是数字/数字字符串,(二进制0b、八进制0、十六进制0x 都是数字~~)
is_numeric:检测是否为数字或数字字符串,可为负数和小数,会自动去除参数前面的空格(如果有),可以检测超过PHP_INT_MAX的数字。
ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不通过,如果传入整数,可能会出现异常结果,可以先转换为字符串,一般用于验证是否是正整数,但是如‘045’,‘0000’,这种0开头的数字字符串也会返回true。

$a = 0001111222;var_dump($a,strval($a));  //int 299666var_dump(is_numeric($a)); //true  var_dump(ctype_digit($a)); //true $a = 011;var_dump($a,strval($a));  //int 9 string '9' (length=1)var_dump(is_numeric($a)); //truevar_dump(ctype_digit($a)); //false$a = 0x11;var_dump($a,strval($a));  //int 17    string '17' (length=2)var_dump(is_numeric($a)); //truevar_dump(ctype_digit($a)); //false$a = '011';var_dump($a);  //int 9 string '9' (length=1)var_dump(is_numeric($a)); //truevar_dump(ctype_digit($a)); //true$a = 0.1;var_dump($a);var_dump(is_numeric($a)); //truevar_dump(ctype_digit($a)); //false$a = -1;var_dump($a);var_dump(is_numeric($a)); //truevar_dump(ctype_digit($a)); //false$a = 'a';var_dump($a);var_dump(is_numeric($a)); //falsevar_dump(ctype_digit($a)); //false

参考:
// PHP中数字检测is_numeric与ctype_digit的区别介绍
//http://blog.csdn.net/e421083458/article/details/17532591

Ctype函数 简介
http://php.net/manual/zh/intro.ctype.php

http://php.net/manual/zh/function.ctype-digit.php
bool ctype_digit ( string $text )

http://php.net/manual/zh/function.is-numeric.php
bool is_numeric ( mixed $var )

原创粉丝点击