HTM5番号入力があるサーバー側検証(PHP)を実行しようとしています:
<input ... min="1" max="20" step="0.1" />
ブラウザでは「10.5」などの値を入力できますが、PHP ではこれをどのように二重チェックする必要があるでしょうか。検証を行わないブラウザの場合 (およびブラウザからのデータを信頼してはならないという事実)。
if (fmod(floatval($value), 0.1) == 0) {
// valid
}
この場合、fmod() は次のように「0.099999...」を返すため、これは機能しません。
異なるプログラミング言語で 0.5 mod 0.1 の結果が異なるのはなぜですか?
$value に 10 を掛けて、(0.1 ではなく) 1 の係数チェックを使用して、整数演算を行うことができます... しかし、ステップが 0.01 または 0.003 の場合はどうなるでしょうか?