ホームページ  >  記事  >  类库下载  >  Integer 整数型

Integer 整数型

高洛峰
高洛峰オリジナル
2016-10-20 15:02:131453ブラウズ

Integer 整数型


整数は、集合 = {..., -2, -1, 0, 1, 2, ...} 内の数値です。


参照:

任意長整数/GMP

浮動小数点型

任意精度数学ライブラリ/BCMath

構文


整数値10 進数、16 進数、8 進数、またはオプションの記号 (- または +) が前に付くバイナリ表現。


整数のバイナリ表現は PHP 5.4.0 以降で利用可能です。


8進数表現を使用するには、数値の前に0(ゼロ)を追加する必要があります。 16 進数の表現を使用するには、数値の前に 0x を付ける必要があります。バイナリ表現を使用するには、数値の前に 0b を追加する必要があります。


例 #1 整数リテラル式

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


整数の正式な説明は次のとおりです。 10進数: 0[xX][0-9a-fA-F]+

8進数: 0[0-7]+

2進数: 0b[01]+

整数: [+-]?10進数
| ?16 進数
16 進数。 64 ビット プラットフォームでの最大値は通常、9E18 程度です。 PHP は符号なし整数をサポートしていません。整数値の語長は定数 PHP_INT_SIZE で表すことができます。PHP 4.4.0 および PHP 5.0.5 以降では、最大値は定数 PHP_INT_MAX で表すことができます。






不正な数値 (つまり、8 または 9) が 8 進数に渡された場合、残りの桁は無視されます。


例 #2 8 進数に関する奇妙なこと

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

Integer 整数型

整数オーバーフロー

指定された数値が integer の範囲を超える場合、それは float として解釈されます。同様に、演算結果が整数の範囲を超える場合は浮動小数点数が返されます。


例 #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 を生成します。値は、小数部分を破棄して整数にキャストすることも、round() 関数を使用して丸めを改善することもできます。

<?php
var_dump(25/7);         // float(3.5714285714286) 
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4) 
?>

整数に変換する

値を明示的に整数に変換するには、 (int) または (integer) を使用してキャストします。ただし、演​​算子、関数、またはフロー制御で整数パラメーターが必要な場合、値は自動的に変換されるため、ほとんどの場合、キャストは必要ありません。関数 intval() を使用して値を整数に変換することもできます。

「型変換の識別」を参照してください。


ブール値


FALSE は 0 (ゼロ) を生成し、TRUE は 1 (1) を生成します。


浮動小数点からの変換


浮動小数点数から整数に変換する場合、切り捨てられます。


浮動小数点数が整数の範囲を超える場合 (通常、32 ビット プラットフォームでは +/- 2.15e+9 = 2^31、64 ビット プラットフォームでは +/- 9.22e+18 = 2^63) , 正確な整数の結果を得るには精度が不十分であるため、結果は未定義です。この場合、警告はなく、通知さえありません。


未知の分数を整数にキャストしないでください。予測できない結果が生じる可能性があります。

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


浮動小数点精度に関する警告を参照してください。 Integer 整数型

文字列から変換します


文字列を数値に変換するを参照してください。


他の型からの変換


注意


他の型から整数への変換に関する定義された動作はありません。予告なく変更される可能性があるため、既存の動作に依存しないでください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPの基本型次の記事:PHPの基本型

関連記事

続きを見る