PHP version de fonctionnement Javascript Modulus
Question
Je cherche une version de PHP pour l'opération de module Javascript (en%). Je dois obtenir ceci pour certains algorithmes de cartographie que je suis en train de port à PHP. Lorsque j'utilise le bcmod de PHP, mes résultats sont éteints certains.
Voici ce que j'ai à ce jour.
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;
}
Tout comme un exemple. Voici les résultats que je reçois quand je fais 3,1432444% 3: Avec Javascript: ,14324439999999994 Avec PHP: 0 Avec Ma fonction: 0.1432444
Je veux obtenir le résultat Javascript avec ma fonction.
Pouvez-vous aider à ajuster mon script. Je ne suis pas wiz de maths, donc je ne vais pas être en mesure de prendre cela aux premiers principes de fonctionnement du module.
Merci.
La solution
Vous pouvez utiliser fmod () , qui fonctionne avec des flotteurs:
fmod(3.1432444, 3);