12,964
回編集
(→浮動⼩数点数) |
|||
132行目: | 132行目: | ||
<br> | <br> | ||
==== 浮動⼩数点数 ==== | ==== 浮動⼩数点数 ==== | ||
===== 浮動小数点の概要 ===== | |||
浮動⼩数点数は、⼩数を含めた数を表現できる型である。<br> | 浮動⼩数点数は、⼩数を含めた数を表現できる型である。<br> | ||
浮動小数点数(float型)のサイズは、AMD64またはx86により依存する。<br> | 浮動小数点数(float型)のサイズは、AMD64またはx86により依存する。<br> | ||
149行目: | 150行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
===== 浮動小数点のキャスト ===== | |||
<code>floatval</code>関数 / <code>doubleval</code>関数は、他のデータ型から浮動小数点型に変換する。<br> | |||
どちらも同様の機能であるが、<code>floatval</code>関数を使用した方がよい。<br> | |||
<syntaxhighlight lang="php"> | |||
$num = "100"; // 文字列型として宣言 | |||
$num1 = floatval($num); | |||
echo gettype($num1). PHP_EOL; // floatと出力 | |||
$num2 = doubleval($num); | |||
echo gettype($num2). PHP_EOL; // doubleと出力 | |||
</syntaxhighlight> | |||
<br> | |||
変換の型を指定して明示的に変換する。<br> | |||
どちらも同様の機能であるが、float型としてキャストした方がよい。<br> | |||
<syntaxhighlight lang="php"> | |||
$num = "3.14"; // 文字列型として宣言 | |||
$num1 = (float)$num; | |||
echo gettype($num1). PHP_EOL; // floatと出力 | |||
$num2 = (double)$num; | |||
echo gettype($num2). PHP_EOL; // doubleと出力 | |||
</syntaxhighlight> | |||
<br> | |||
その他のデータ型から浮動小数点にキャストする。<br> | |||
このキャスト結果は、整数型とほぼ同じである。<br> | |||
<syntaxhighlight lang="php"> | |||
var_dump((float)"aaa"); // キャストの結果 : 0 (文字列の場合は、全て0となる) | |||
var_dump((float)"999aaa"); // キャストの結果 : 999 (文字列 + 数値の場合は、文字の部分が削除されてキャストされる) | |||
var_dump((float)"123"); // キャストの結果 : 123 | |||
var_dump((float)"999.99"); // キャストの結果 : 999.99 | |||
var_dump((float)"4E2"); // キャストの結果 : 400 | |||
var_dump((float)true); // キャストの結果 : 1 | |||
var_dump((float)false); // キャストの結果 : 0 | |||
var_dump((float)null); // キャストの結果 : 0 | |||
</syntaxhighlight> | |||
<br> | |||
==== NaN ==== | ==== NaN ==== | ||
数値演算の結果が定数NaNで表される値になることがある。<br> | 数値演算の結果が定数NaNで表される値になることがある。<br> |