Question Restez seulement d'une division utilisant PHP


Je divise 19/5 où par j'ai utilisé 19/5 mais je suis incapable d'obtenir le reste seulement.

Comment puis-je l'obtenir?

Merci Jean


14
2017-07-17 19:32


origine


Réponses:


Essayez-le-

  $tempMod = (float)($x / $y);
  $tempMod = ($tempMod - (int)$tempMod)*$y;

19
2017-07-17 19:35



echo 19 % 5;

devrait retourner 4, qui est le reste de 19/5 (3 rem 4) Il n'y a pas besoin d'utiliser floor, car le résultat d'une opération de module sera toujours une valeur entière.

Si vous voulez le reste lorsque vous travaillez avec des valeurs à virgule flottante, alors PHP a aussi la fonction fmod ():

echo fmod(19,5.5);

MODIFIER

Si vous voulez le reste sous forme décimale:

non plus

echo 19/5 - floor(19/5);

ou

echo (19 % 5) / 5

vont tous deux retourner 0,8


61
2017-07-17 19:38



Selon la langue que vous utilisez, % peut ne pas être l'opérateur de module. Je suppose que vous utilisez PHP, auquel cas il est %.

De ce que je peux voir, il n'y a pas besoin d'utiliser floor() avec un module entier, il retournera toujours un entier. Vous pouvez le retirer en toute sécurité.

Pour moi, ce n'est pas le calcul qui vous donne l'enfer, mais le code qui l'entoure. Vous aurez besoin de poster plus de code; le code que vous avez listé est correct.

Modifier:

Vous ne cherchez pas le reste, vous cherchez la valeur décimale restante. Il n'a pas de nom.

$leftover = 19 / 5;
$leftover = $leftover - floor($leftover);

Cela devrait être ce que vous recherchez.


4
2017-07-17 19:40