Ne \ effectuer la division entière dans VB?
Dans VB.NET même si les deux opérandes sont des entiers, la /
, l'opérateur en cause la valeur à virgule flottante (si le résultat est non entier).
J'ai donc essayé avec le \
opérateur qui donne valeur entière, indépendamment des opérandes.
J'ai donc pensé que \
est la division entière.
2.5 \ 3
résultats dans 0
.
Maintenant, j'ai essayé 1.5 \ 2
. Je m'attendais à être 0
mais elle a entraîné une 1
.
Maintenant, est-ce un bug ou un résultat correct?
Ce que le \
opérateur est réellement?
Si c'est un bug, il existe un droit par le biais de VB6.
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez
\
sur des nombres non entiers, vous devez d'abord les convertir en nombres entiers, ce qui provoque arrondissement: l'équivalent deCLng(1.5) \ 2
, qui est2 \ 2
ou1
.Si vous utilisez
Option Strict On
alors vous verrez ce lieu.2\3 = 0
. Voir les commentaires Conversions: "Si la partie fractionnaire est exactement égale à 0,5, les fonctions de conversion d'entier arrondir à l'entier pair le plus proche. Par exemple, 0,5 est arrondi à 0, et à 1,5 et 2,5 fois ronde à 2. Cela est parfois appelé l'arrondi, et son but est de compenser les biais qui pourrait s'accumuler lors de l'ajout de tels nombres."Option Strict On
dont je ne connaissais pas et vais probablement l'utiliser à partir de maintenant, étant une rigueur fanatique.Voir le
Remarks
-Section dans le La Documentation:Qui signifie 1.5 \ 2 est 2 /2, qui est de 1.
L'arrondi (à partir de Fonctions De Conversion De Type):
pas un bug, mais simplement le résultat est arrondi au nombre entier le plus proche.
L'opérateur /est utilisé pour faire une division entre les nombres et les nombres entiers de type float ou double, sans oublier le type Décimal.
Ce qui concerne.