PHP версия работы модуля Javascript - PullRequest
0 голосов
/ 19 декабря 2010

Я ищу версию PHP для операции модуля Javascript (%). Мне нужно получить это для некоторых алгоритмов сопоставления, которые я пытаюсь перенести на 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 с моей функцией.

Можете ли вы помочь настроить мой сценарий. Я не математик, поэтому я не смогу перенести это на первые принципы работы модуля.

Спасибо.

1 Ответ

5 голосов
/ 19 декабря 2010

Вы можете использовать fmod () , который работает с числами с плавающей запятой:

fmod(3.1432444, 3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...