PHPでウェブの世界と繋がろう!
menu
ホーム > PHPの文法 > 2 データ型 > 2-4 浮動小数点型 float

2-4 浮動小数点型 float

Pocket

- 1 分ノート ! -

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

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

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

$fNum = 1.1414; 
echo $fNum."<br />\n";

$fNum = 0.015e2;
echo $fNum."<br />\n";

$fNum = 3E-4;
echo $fNum."<br />\n";

結果は

1.1414
1.5
0.0003

となります。

精度
POINT
  • 浮動小数点型の値は近似値であり、7.6 は 7.5999999999という値となる

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

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

if(int($fNumA * 1000) == int($fNumB * 1000))

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

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

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

$fValue = 1.1414;
if(is_float($fValue ) === TRUE) echo '浮動小数点型です。';

結果は

浮動小数点型です。

となります。

サンプルコード

– サンプル Click Here ! –

・浮動小数点型:<br/>
<?php
$fNum = 1.1414; 
echo $fNum."<br />\n";

$fNum = 0.015e2;
echo $fNum."<br />\n";

$fNum = 3E-4;
echo $fNum."<br />\n";
?>
<br/><br/>


・精度:<br/>
<?php
$fNumA = 0.3;
$fNumB = 0.3;
if(($fNumA * 1000) === ($fNumB * 1000))
echo '小数点以下2桁までが等しい';
?>
<br/><br/>

・精度:<br/>
<?php
$iFloat = floor((0.1+0.7));
echo 'floor((0.1+0.7)*10)は'.floor((0.1+0.7)*10)." となる。これは内部的には7.9999999999999991118...だからです。<br />\n";

$iFloat = 0.7;
echo '0.7は内部的に'.number_format($iFloat , 30)." となっています。<br />\n";
?>
<br/><br/>

・浮動小数点型を調べる:<br/>
<?php
$fValue = 1.1414;
if(is_float($fValue) === TRUE) echo '浮動小数点型です。';
?>
<br/><br/>
実行結果
・浮動小数点型:
1.1414
1.5
0.0003

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

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

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

– サンプル Click Here ! –


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

日付

投稿日:2011年10月11日
最終更新日:2014年02月01日

関連記事

配列関数サンプル

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

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-floattype/trackback/