检查数字数据类型的 PHP 程序


2022年2月8日, Learn eTutorial
1987

PHP 提供自动数据类型转换。因此,如果您将整数值赋给一个变量,该变量的类型将自动为整数。然后,如果您将字符串赋给同一个变量,类型将更改为字符串。

这种自动转换有时会破坏您的代码。

PHP 整数

整数是没有小数部分的数字。

在 32 位系统中,整数数据类型是一个介于 -2147483648 和 2147483647 之间的非小数数字,在 64 位系统中,它介于 -9223372036854775808 和 9223372036854775807 之间。大于(或小于)此值的数字将存储为浮点数,因为它超出了整数的限制。

以下是一些关于整数的规则

  • 整数必须至少包含一位数字
  • 整数不能有小数点
  • 整数可以是正数或负数
  • 整数可以指定为三种格式:十进制(10进制)、十六进制(16进制 - 以 0x 为前缀)或八进制(8进制 - 以 0 为前缀)

PHP 为整数提供了以下预定义常量

  • PHP_INT_MAX - 支持的最大整数
  • PHP_INT_MIN - 支持的最小整数

  • PHP_INT_SIZE - 整数的字节大小

PHP 提供以下函数来检查变量的类型是否为整数

  • is_int()
  • is_integer() - is_int() 的别名
  • is_long() - is_int() 的别名

PHP 浮点数

浮点数是带小数点的数字或指数形式的数字。

2.0、256.4、10.358、7.64E+5、5.56E-5 都是浮点数。

浮点数据类型通常可以存储最大为 1.7976931348623E+308 的值(取决于平台),最大精度为 14 位。

PHP 为浮点数提供了以下预定义常量(从 PHP 7.2 开始)

  • PHP_FLOAT_MAX - 可表示的最大浮点数
  • PHP_FLOAT_MIN - 可表示的最小正浮点数
  • - PHP_FLOAT_MAX - 可表示的最小负浮点数
  • PHP_FLOAT_DIG - 可以四舍五入到浮点数并返回而不会损失精度的十进制位数
  • PHP_FLOAT_EPSILON - 最小的可表示正数 x,使得 x + 1.0 != 1.0

PHP 提供以下函数来检查变量的类型是否为浮点数

  • is_float()
  • is_double() - is_float() 的别名

PHP 无穷大

大于 PHP_FLOAT_MAX 的数值被认为是无限的。

PHP 提供以下函数来检查数值是有限的还是无限的

  • is_finite()
  • is_infinite()

PHP NaN

NaN 代表“不是一个数字”。它用于不可能的数学运算。

PHP 提供以下函数来检查值是否不是一个数字

  • is_nan()

PHP 数字字符串

PHP 的 is_numeric() 函数可以用来判断变量是否为数字。如果变量是数字或数字字符串,该函数返回 true,否则返回 false。

PHP 将字符串和浮点数转换为整数

有时我们需要将数值转换为另一种数据类型。

(int)(integer)intval() 函数通常用于将值转换为整数。

算法

步骤 1: 读取值

步骤 2: 检查值是否为整数类型

步骤 3: 检查值是否为浮点数

步骤 4: 检查值是否为无限

步骤 5: 检查给定值是否不是数字

步骤 6: 检查给定值是否为数字

步骤 7: 将给定的浮点数转换为整数并显示该值

 

PHP 源代码

                                          <?php
$x = 9988;
var_dump($x);
echo "\n";

$x = 12.368;
var_dump($x);
echo "\n";

$x = 2.8e411;
var_dump($x);
echo "\n";

$x = acos(2);
var_dump($x);
echo "\n";

$x = "3589";
var_dump(is_numeric($x));
echo "\n";

// Cast float to int
$x = 58963.768;
$int_cast = (int)$x;
echo $int_cast;

                                      

输出

int(9988)

float(12.368)

float(INF)

float(NAN)

bool(true)

58963