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

您可以使用fmod(),它适用于浮点数:

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