くだすれPHP(超初心者用)3
at PHP
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
550:nobodyさん 08/03/14 20:32:53 質問です。 よければ教えてください。 echo 45 * 1.4; echo "<br>"; $a = floor(45 * 1.4); echo $a; echo "<br>"; というプログラムで、結果が 63 62 となるんですけど、原因がわかりません… 63が正解なのですが、なぜなんでしょう? 実際は変数が入るので、結果も変動して小数点以下の数値も出るのでfloorしていますが、 なぜかこの数値の時だけ結果にずれが… 551:nobodyさん 08/03/14 20:54:07 >>550 典型的な、浮動小数点誤差の問題だね。 一般的にコンピュータは数値を二進数に変換して処理する。 1.4という数値は二進数では近い数字は表現できても、 1.4そのものは表現できない数値なんだ。(小数点以下が無限に続く) よって 45 × 1.3999・・・という計算になる。 当然答えも62.9999・・・になる。 あとはechoのとき、62.9999・・・というほぼ63という値なら、 それを63にして表示しているということだろう。 公式サイトにも書いてあるが。 http://www.php.net/manual/ja/language.types.float.php
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5281日前に更新/165 KB
担当:undef