0

スクリプトにユーザー入力がありますが、$_POST['money']実際には小数点以下2桁の浮動小数点数であることを確認したいと思います。

私が計画$money = (float)@$_POST['money']していたのは、この場合、$money数値以外が入力された場合はゼロに設定されます。ただし、ユーザーが5.234のようなものを入力すると、このケースが発生する可能性があります。この場合、お金もゼロに設定する必要があります。

トリッキーなことやそのようなことはしたくありませんexplode。これを効率的に行う方法があることを望んでいました。

整数も有効な量なので問題ありません。

4

2 に答える 2

0

このコードを使用することにしました:

$money = (float)(@$_POST['money'] / 0.01) <> (int)(@$_POST['money'] / 0.01) ? 0 : (float)@$_POST['money'];

より良い解決策がある場合は、投稿してください。

于 2012-10-14T16:56:50.433 に答える
0

ここをチェックしてください:

http://php.net/manual/ro/function.is-float.php

そしてここ

http://php.net/manual/en/function.number-format.php

またはこの機能を使用します

function is_deccount($number,$decimal=2){
    $m_factor=pow(10,$decimal);
    if((int)($number*$m_factor)==$number*$m_factor)
        return true;
    else
        return false;
} 
于 2012-10-14T16:07:47.377 に答える