residuo operador div c# vb.net

operador - mod 10 c#



¿Por qué los operadores de división(/) se comportan de manera diferente en VB.NET y C#? (5)

El operador / en C # para operandos enteros realiza la operación de "división entera" (equivalente a / operador en VB.NET ). Para VB.NET, es la división "normal" (dará resultado fraccionario). En C #, para hacer eso, tendrá que emitir explícitamente al menos un operando a un tipo de coma flotante (por ejemplo, double ).

Si crea nuevos proyectos en C # y VB.NET, vaya directamente a la ventana Inmediato y escriba esto:

? 567 / 1000

C # devolverá 0, mientras que VB.NET devolverá 0.567.

Para obtener el mismo resultado en C #, debe escribir

? 567 / 1000.0

¿Por qué hay esta diferencia? ¿Por qué C # requiere el punto decimal explícito después de 1000?


Los idiomas son diferentes. En C #, el compilador interpreta esos números como enteros y usa la división de enteros. En VB.NET, el compilador usa la división de coma flotante.


Por defecto, C # trata a 576/1000 como división entera, por lo que se obtiene un número entero como resultado.

En VB.NET lo trata como una división de coma flotante.

Al agregar ".0" en un número en C #, explícitamente le dice que este número es un número de punto flotante y, por lo tanto, la división también se convierte en punto flotante.


Porque en VB.NET, el operador / se define para devolver un resultado de coma flotante. Amplía sus entradas para double y realiza la división. En C #, el operador / realiza la división de enteros cuando ambas entradas son números enteros.

Ver MSDN para VB.NET .

Divide dos números y devuelve un resultado de coma flotante.

Antes de realizar la división, cualquier expresión numérica integral se amplía a Doble.

Ver MSDN para C # .

El operador de división (/) divide su primer operando por su segundo. Todos los tipos numéricos tienen operadores de división predefinidos.

Cuando divide dos enteros, el resultado siempre es un entero.

Para obtener la misma semántica en VB.NET que el operador / en enteros en C #, use el operador / .

Divide dos números y devuelve un resultado entero.