ホーム > PHPの文法 > 2 データ型 > PHP の 浮動小数点型(float) について
PHPリファレンス

UPDATE:2020年07月06日

PHP の 浮動小数点型(float) について

PHP の 浮動小数点型(float) について | wepicks!
PHP4.3 PHP5 PHP7

1 Minute Note

  • 浮動小数点型とは 小数点付きの数値 のこと
  • 浮動小数点型の種類は スカラー型
  • 浮動小数点型のチェックは is_float() 関数 で行う
  • 浮動小数点型の値は 近似値 であり、7.67.5999999999 という値となる
php の 浮動小数点型 とは小数点付きの数値のことです。浮動小数点型の種類はスカラー型で、値は近似値であり、例えば、7.6 は 7.5999999999という値となります。


浮動小数点型とは

POINT

  • 浮動小数点型とは 小数点付きの数値 のこと
  • 浮動小数点型の種類は スカラー型
小数点付きの数値

浮動小数点とは小数点付きの数値のことです。 3.140.004 などです。
また、PHP の浮動小数点型は 0.015E2(0.015*10の2乗 で 1.5となります。)などの 指数形式の記法 にも対応しています。

結果は

1.1414
1.5
0.0003

となります。

浮動小数点型の精度

POINT

  • 浮動小数点型の値は 近似値 であり、7.67.5999999999という値となる
精度14桁の近似値

浮動小数点型の大きさはプラットフォーム(PHP が稼働しているコンピューターなど)に依存しますが、1.8E-308から01.8E+308までの10進数で精度14桁となっています。(10進数 64ビット IEEE フォーマット)

浮動小数点型の値は 近似値 になります。7.6 は 7.5999999999 という値で表されます。つまり、浮動小数点数を正確な値で処理することを期待したコードを記述してはいけないということになります。

浮動小数点数の小数点以下30桁を number_format で表示してみましょう。

結果は

0.7は内部的に0.699999999999999955591079014994 となっています。

となります。

従って、2つの浮動小数点値を == で比較する場合は、

という形で比較すれば、小数点以下2桁までが等しい、となります。

結果は

小数点以下5桁までが等しい

となります。

浮動小数点型を調べる

POINT

  • 浮動小数点型のチェックは is_float() 関数 で行う

浮動小数点型であるかどうかし調べるには、is_float()関数 を使用します。

結果は

浮動小数点型です。

となります。

php is_float() 書式
bool TRUE か FALSE = is_float(mixed $var);

説明変数のデータ型が浮動小数点型かどうかチェックする
引数mixed $varデータ型を調べる変数
返り値bool変数が浮動小数点型の場合:TRUE、変数が浮動小数点型ではない場合:FALSE

サンプル

データ型の種類

POINT
  • PHPの8つのデータ型:
  • 字列型(string) 整数型(integer) 浮動小数点数型(float)(double) 論理型(boolean) 配列型(array) オブジェクト型(object) リソース型(resource) NULL(null)
    (スカラー型) (スカラー型) (スカラー型) (スカラー型) (複合型) (複合型) (特殊型) (特殊型)
  • PHPの3のデータ種類:
  • スカラー型
    (文字列型) (整数型) (浮動小数点数型) (論理型)
    複合型
    (配列型) (オブジェクト型)
    特殊型
    (リソース型) (NULL)
PHPには8種類のデータ型があります。文字列型、整数型、浮動小数点数型、論理型、配列型、オブジェクト型、リソース型、NULLです。そして、それらのデータ型は、スカラー型複合型特殊型に分けられます。 スカラー型は単一の値で作られている型です。文字列、整数、浮動小数点数、論理値がそれに当たります。 複合型(コレクション型)は複数の値で作られている型です。配列とオブジェクトがそれに当たります。 特殊型リソースとNULLです。

データ型の表

型名種類
文字列型stringスカラー型'Hello World!!'
"我思う、ゆえに我あり"
整数型integerスカラー型1、2020、-588、+98
8進数
16進数
浮動小数点数型float(double)スカラー型1.4142、-0.18
論理型booleanスカラー型TRUE | FALSE (true false)
(大文字・小文字を区別しない)
配列型array複合型array('name','address')
オブジェクト型object複合型$oObj = new ClassName();
リソース型resource特殊型resource
ヌル型null特殊型NULL | null | Null
(大文字・小文字を区別しない)

サンプルコード

– サンプル Click Here ! –

実行結果
・浮動小数点型:
1.1414
1.5
0.0003

・精度:
小数点以下2桁までが等しい

・精度:
小数点以下5桁までが等しい

・精度:
floor((0.1+0.7)*10)は7 となる。これは内部的には7.9999999999999991118…だからです。
0.7は内部的に0.699999999999999955591079014994 となっています。

・浮動小数点型を調べる:
浮動小数点型です。

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2017年3月18日
最終更新日:2020年07月06日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-floattype/trackback/

page top