En VB, ¿por qué el resultado del cálculo de 5 se divide por 1 entre 5,1, mientras que el resultado del cálculo de 50\51 es 0?
Antes de la división de enteros en VB, los números de ambos lados se redondearán de acuerdo con las siguientes reglas, y el resultado también será un número entero.
Reglas de redondeo:
1.
Si la parte entera es un número par y la parte decimal es 0,5, entonces el número redondeado por el sistema es igual a la parte entera.
Si la parte decimal es superior a 0,5 se realizará carry, y si es inferior a 0,5 se eliminará directamente la parte decimal;
2.
Si la parte entera es un número impar, se redondeará.
Por ejemplo:
1.2
El número entero antes de la operación es 1.
1,6
Redondear a 2 antes de la operación.
1,5
Redondear a 3 antes de la operación.
2,5
Redondear a 2 antes de la operación.
2.6
Redondear a 3 antes de la operación.
Eso es 5\5.1.
Competente
5\5
, por lo que el resultado es 1.
50/51 es menor que 1 y la parte entera no es 0, por lo que el resultado es 0.