• ベストアンサー

この画像はphpの画像なんですが、なぜ小数0.12

この画像はphpの画像なんですが、なぜ小数0.123がdouble型と表示されているんでしょうか? single, double, long doubleなどが値が小数の場合の型なんですよね? その中のdoubleが出力されている理由はなんでですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (766/5721)
回答No.2

PHPでは浮動小数点数をfloatまたはdoubleと表現するようです。 floatとdoubleは表現が違うだけで同じものと考えてください。 singleやlong doubleはなさそうです。 それにしても、floatとdoubleのうち、なぜvar_dumpがdoubleと出力するのかは、確かに疑問です。 ドキュメントを見ると、サンプルの出力はfloatとなっています。 バージョンによって異なるのかもしれません。 浮動小数点数に関係する関数に、以下のようなものがあります。 floatval doubleval is_float is_double ドキュメントによると、doubleが付くものは、floatが付くもののエイリアスとなっています。 エイリアスの解釈としては、doubleが付くものを呼ぶと、内部ではfloatが付くものを呼んでいると私は思っています。 それならfloatが基本となっている考え方のようなので、var_dumpの結果も画像のようなものではなく、ドキュメントのサンプルと同じようにfloatを出力すべきであると私は思います。 これらから、var_dumpはdoubleを表示するように、PHPは設計、製造、コンパイルされているからとしか言えそうにないです。 理由はドキュメントから読み取れませんでした。

okwaveokw
質問者

お礼

singleもないんですね?

その他の回答 (2)

  • dell_OK
  • ベストアンサー率13% (766/5721)
回答No.3

回答No.1を読んで、訂正します。 「float型とdouble型がある」とのことなので、 「同じものと考えてください」はなかったことにしてください。

okwaveokw
質問者

お礼

ありがとうございます

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

PHPの浮動小数点型はfloat型とdouble型があります。 質問者さんが使われている環境ではdouble型が優先的に利用される型になっており、変数に少数を入れようとした際に型宣言していなかったので自動的にdouble型として設定されたと言う事です。

okwaveokw
質問者

お礼

二種類あったんですね ありがとうございます