- 締切済み
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言語などと違う点はどこらへんでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- wp_
- ベストアンサー率54% (132/242)
回答No.1
cで使われるごくごく小さい数は「機械イプシロン」と言うらしいですね。 // 知らなかった 一晩待って誰も突っ込まない、「機械イプシロン PHP」で検索・ぐぐってもそれらしい記事がないところをみると 該当する機能はないのではないかと思います。 ただphp自身がcで記述されているので、独自拡張すれば使えないこともないのではと思います。 手間はすごく掛かりますが・・・ むしろ、php内でそういう機能を実装するのもアリかもしれませんね。
お礼
ご返答ありがとうございます。 マニュアルにサンプルのようなものがありました。 自分で定義してるみたいですね。 見た感想としては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; } >
補足
URL忘れました・・・ ここです http://jp.php.net/manual/ja/language.types.float.php