第3章 演算子 / 第3回 模擬試験
PHPの浮動小数点数に関する次の記述のうち、正しいものはどれか。
浮動小数点数の演算は、常に完全に正確な結果を返す。
`0.1 + 0.2 === 0.3`は、PHPでは常に`true`になる。
浮動小数点数を比較する際は、誤差を考慮した比較方法が推奨される。
正解
浮動小数点数はPHPでは整数型に自動的に丸められる。
解説
浮動小数点数は内部的に2進数で近似表現されるため誤差が生じることがあり、`0.1 + 0.2 === 0.3`は`false`になります。誤差を考慮した比較(差の絶対値が十分小さいか等)が推奨されます。(参照: 独習PHP 第4版 第3章 演算子 3.1.4節 浮動小数点数の演算に注意 p.92)
関連する問題
- 次のコードの【 A 】に入れた場合に`true`が返される組み合わせとして正しいものはどれか。 ```php if (【 A 】) { print("true"); } else { print("false"); } 【1】"php" > "perl" 【2】0 != "0" 【3】5 - 6 + 1 【4】"false" 【5】0 + false 【6】"543a" < 56 【7】abs(-6) > 10 / 2 ```
- 次のコードの実行結果として正しいものはどれか。 ```php $a = 2 + 3 * 6; $b = $a % 7; $c = $b ** 2; print($c); ```
- PHPの論理演算子に関する次の記述のうち、正しいものはどれか。
- PHPの論理演算子に関する次の記述のうち、誤っているものはどれか。
- 次のコードの実行結果として正しいものはどれか。 ```php $a = 10; $b = 3; print $a / $b . " " . intdiv($a, $b) . " " . $a % $b; ```