PHP版本的Javascript Modulus操作

Obi*_*ill 0 php modulus

我正在寻找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;
}
Run Code Online (Sandbox Code Playgroud)

仅作为一个例子.这是我得到的结果3.1432444%3:使用Javascript:0.14324439999999994 PHP:0 With My Function:0.1432444

我想用我的函数获取Javascript结果.

你能帮忙调整我的剧本吗?我不算数学,所以我不能把它带到模数运算的第一原理.

谢谢.

Ist*_*ros 5

你可以使用fmod(),它与浮点数一起使用:

fmod(3.1432444, 3);
Run Code Online (Sandbox Code Playgroud)