0

Javascriptモジュラス(%)演算用のPHPバージョンを探しています。PHPに移植しようとしているいくつかのマッピングアルゴリズムでこれを取得する必要があります。PHPのbcmodを使用すると、結果が多少ずれます。

これが私がこれまでに持っているものです。

public static function mod($operand_str, $modulus_res)
{
    $arg_arr = array();
    $arg_arr = func_get_args();

    $operand_str = strval($operand_str);
    $modulus_res = strval($modulus_res);

    $retain_scale_bool = (!isset($arg_arr[2]) || $arg_arr[2] == '') ? false: $arg_arr[2];

    //get decimal
    $decimal_arr = array();
    $decimal_arr = explode('.', $operand_str);

    switch(true)
    {
        case ($retain_scale_bool == true):
            $modulus_new_res = bcmod($operand_str, $modulus_res);
            $modulus_new_res = $modulus_new_res.'.'.$decimal_arr[1];
        break;

        default:
            $modulus_new_res = bcmod($operand_str, $modulus_res);
    }

    return $modulus_new_res;
}

例として。3.1432444を実行したときに得られる結果は次のとおりです。%3:Javascriptの場合:0.14324439999999994 PHPの場合:0関数の場合:0.1432444

関数でJavascriptの結果を取得したい。

スクリプトの調整を手伝ってもらえますか。私は数学の専門家ではないので、これをモジュラス演算の第一原理に取り入れることはできません。

ありがとう。

4

1 に答える 1

5

floatで機能するfmod()を使用できます。

fmod(3.1432444, 3);
于 2010-12-18T22:29:04.493 に答える