• 締切済み

PHPでε(イプシロン)のような定数はありますか?

C言語では、 >1.0 + ε > 1.0 となる最小の値ε >#define FLT_EPSILON 1.19209290E-07F >#define DBL_EPSILON 2.2204460492503131E-16 >#define LDBL_EPSILON 1.084202172485504434e-019L のような形で定義されているそうですが、 PHPにおいてはそのような値は定義されているのでしょうか? そもそも小数点以下を評価(比べる)する際に C言語などと違う点はどこらへんでしょうか?

みんなの回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

cで使われるごくごく小さい数は「機械イプシロン」と言うらしいですね。 // 知らなかった 一晩待って誰も突っ込まない、「機械イプシロン PHP」で検索・ぐぐってもそれらしい記事がないところをみると 該当する機能はないのではないかと思います。 ただphp自身がcで記述されているので、独自拡張すれば使えないこともないのではと思います。 手間はすごく掛かりますが・・・ むしろ、php内でそういう機能を実装するのもアリかもしれませんね。

takagoo100
質問者

お礼

ご返答ありがとうございます。 マニュアルにサンプルのようなものがありました。 自分で定義してるみたいですね。 見た感想としてはC言語と同じような感じだろうか > define('EPSILON', 1.0e-8); function real_cmp($r1, $r2) { $diff = $r1 - $r2; if( abs($diff) < EPSILON ) return 0; else return $diff < 0 ? -1 : 1; } >

takagoo100
質問者

補足

URL忘れました・・・ ここです http://jp.php.net/manual/ja/language.types.float.php

関連するQ&A