Frage

Ich bin für eine PHP-Version für den Javascript-Modul (%) Betrieb. Ich brauche dies für einige Mapping-Algorithmen bekommen ich in dem Hafen PHP bin versucht. Wenn ich PHP bcmod verwenden, sind meine Ergebnisse aus einigen.

Hier ist, was ich habe so weit.

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;
}

Nur als Beispiel. Hier sind die Ergebnisse, die ich bekomme, wenn ich 3.1432444% tun 3: Mit Javascript: ,14324439999999994 Mit PHP: 0 Mit My Funktion: 0.1432444

Ich mag das Javascript Ergebnis mit meiner Funktion erhalten.

Können Sie helfen, mein Skript anpassen. Ich bin kein Mathegenie, so werde ich in der Lage sein, dies nicht zu den ersten Prinzipien des Moduls Betrieb zu nehmen.

Danke.

War es hilfreich?

Lösung

Sie können mit fmod () , die mit Schwimmern arbeitet:

fmod(3.1432444, 3);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top