Comportement des opérateurs «/» et «%» sur les entiers.
Si vous divisez un entier par un entier ** entier ** vs ** nombre à virgule flottante ** Lequel?
---5 / 4
est ** - 1,25 **
- PHP
//
pour l'école de langue C
-5 / 4
est ** - 1 **-5 / 4
est ** - 2 **
Quel est le reste négatif (division reste opérateur %
) ** positif ** vs ** négatif **?
---5% 4
est ** - 1 **
-5% 4
est ** 3 **/
%
(reste)
--(a / b * b) + (a% b)
correspond à ʻa`a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1 | 1 |
5 | -4 | -1 | 1 |
-5 | 4 | -1 | -1 |
-5 | -4 | 1 | -1 |
PHP
/
--Si vous divisez un entier par un entier, il devient un nombre à virgule flottante s'il n'est pas divisible.
--%
(reste)
--(int) (a / b) * b + (a% b)
correspond à ʻa` (transtyper en int est arrondi plus près de 0)a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1.25 | 1 |
5 | -4 | -1.25 | 1 |
-5 | 4 | -1.25 | -1 |
-5 | -4 | 1.25 | -1 |
JavaScript
/
--Si vous divisez un entier par un entier, il devient un nombre à virgule flottante s'il n'est pas divisible.
--JavaScript ne fait pas la distinction entre les nombres entiers et les nombres à virgule flottante en premier lieu%
(reste)
--Math.trunc (a / b) * b + (a% b)
correspond à ʻa` (Math.trunc arrondit plus près de 0)a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1.25 | 1 |
5 | -4 | -1.25 | 1 |
-5 | 4 | -1.25 | -1 |
-5 | -4 | 1.25 | -1 |
Perl
Si vous n'avez pas déclaré ʻuse integer`.
/
--Si vous divisez un entier par un entier, il devient un nombre à virgule flottante s'il n'est pas divisible.
--%
(reste)
--floor (a / b) * b + (a% b)
correspond à ʻa` (le sol arrondit dans le sens de l'infini négatif)a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1.25 | 1 |
5 | -4 | -1.25 | -3 |
-5 | 4 | -1.25 | 3 |
-5 | -4 | 1.25 | -1 |
Perl (use integer)
Si vous déclarez ʻuse integer`.
/
%
(reste)
--(a / b * b) + (a% b)
correspond à ʻa`a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1 | 1 |
5 | -4 | -1 | 1 |
-5 | 4 | -1 | -1 |
-5 | -4 | 1 | -1 |
Python
Pour Python3. (2 est différent)
/
--Lorsque vous divisez un entier par un entier, il devient toujours un nombre à virgule flottante.
--//
(division entière)%
(reste)
--(a // b * b) + (a% b)
correspond à ʻa`a | b | a / b |
a // b |
a % b |
---|---|---|---|---|
5 | 4 | 1.25 | 1 | 1 |
5 | -4 | -1.25 | -2 | -3 |
-5 | 4 | -1.25 | -2 | 3 |
-5 | -4 | 1.25 | 1 | -1 |
Ruby
/
%
(reste)
--(a / b * b) + (a% b)
correspond à ʻa`a | b | a / b |
a % b |
---|---|---|---|
5 | 4 | 1 | 1 |
5 | -4 | -2 | -3 |
-5 | 4 | -2 | 3 |
-5 | -4 | 1 | -1 |
Mon article dans la série multilingue
Recommended Posts