cari

Integer 整型

Oct 20, 2016 pm 03:02 PM
integer

Integer 整型


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


参见:

任意长度整数/GMP    

浮点型    

任意精度数学库/BCMath    

语法


整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。


二进制表达的 integer 自 PHP 5.4.0 起可用。


要使用八进制表达,数字前必须加上    0(零)。要使用十六进制表达,数字前必须加上    0x。要使用二进制表达,数字前必须加上    0b。


Example #1 整数文字表达

<?php
$a = 1234; // 十进制数
$a = -123; // 负数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
?>

   

 

整型 integer 的正式描述为:

decimal     : [1-9][0-9]*
            | 0

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

octal       : 0[0-7]+

binary      : 0b[01]+

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


整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。64    位平台下的最大值通常是大约 9E18。PHP     不支持无符号整数。Integer 值的字长可以用常量    PHP_INT_SIZE来表示,自    PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量 PHP_INT_MAX 来表示。

1.png

如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。


Example #2 八进制数的怪事

<?php
var_dump(01090); // 八进制 010 = 十进制 8
?>

   

 

整数溢出


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


Example #3 32 位系统下的整数溢出

<?php
$large_number = 2147483647;
var_dump($large_number);                     // int(2147483647)
 
$large_number = 2147483648;
var_dump($large_number);                     // float(2147483648)
 
$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);                     // float(50000000000)
?>  
Example #4 64 位系统下的整数溢出
<?php
$large_number = 9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)
 
$large_number = 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)
 
$million = 1000000;
$large_number =  50000000000000 * $million;
var_dump($large_number);                     // float(5.0E+19)
?>

   


PHP 中没有整除的运算符。1/2 产生出 float    0.5。值可以舍弃小数部分强制转换为 integer,或者使用     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(壹)。


从浮点型转换


当从浮点数转换成整数时,将向下取整。


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

1.png

决不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。

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

   

 

参见关于浮点数精度的警告。


从字符串转换


参见字符串转换为数值。


从其它类型转换


Caution    


没有定义从其它类型转换为整型的行为。不要依赖任何现有的行为,因为它会未加通知地改变。


Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna