Otro de mis fallos :(

Iniciado por luis456, 24 Septiembre 2014, 17:47 PM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Tengo esta famosa rutina jejej :) y ahora se me ocurre dividir pero pero no sale :)

Código (vbnet) [Seleccionar]
Result1 = {Num1 - 2, Num1 - 3, Num1 + 1, Num1 + 2, Num1 + 3} _
        .Distinct().ToArray


cuando le pongo el signo de divicion me sale error ??


Result1 = {Num1 / 2, Num1 - 3, Num1 + 1, Num1 + 2, Num1 + 3} _
        .Distinct().ToArray




error
No se puede convertir un valor de tipo '1-matriz dimensional de Double' en '1-matriz dimensional de Integer' debido a que 'Double' no se deriva de 'Integer'


Que tu sabiduria no sea motivo de Humillacion para los demas

kub0x

Cita de: luis456 en 24 Septiembre 2014, 17:47 PM
No se puede convertir un valor de tipo '1-matriz dimensional de Double' en '1-matriz dimensional de Integer' debido a que 'Double' no se deriva de 'Integer'

Básicamente estás asignando un valor de tipo double, fruto de la división, dentro de un array de enteros. La división implica una parte decimal, por lo que tendrás que hacer un cast a Int.

En cristiano...
Código (VB.NET) [Seleccionar]

Result1 = {Convert.ToInt32(Num1 / 2), Num1 - 3, Num1 + 1, Num1 + 2, Num1 + 3} _
       .Distinct().ToArray


Espero haber sido de ayuda.

Saludos!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


luis456

Cita de: kub0x en 24 Septiembre 2014, 17:57 PM
Básicamente estás asignando un valor de tipo double, fruto de la división, dentro de un array de enteros. La división implica una parte decimal, por lo que tendrás que hacer un cast a Int.

En cristiano...
Código (VB.NET) [Seleccionar]

Result1 = {Convert.ToInt32(Num1 / 2), Num1 - 3, Num1 + 1, Num1 + 2, Num1 + 3} _
       .Distinct().ToArray


Espero haber sido de ayuda.

Saludos!


Perfecto gracias  por una respuesta tan rapida :)


saludos
Luis



Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#3
Convertir a entero es realizar una conversion innecesarias, para evitarlo debes utilizar el operador de división correcto (el de enteros).


\ Operator
Divides two numbers and returns an integer result.

/ Operator
Divides two numbers and returns a floating-point result.

Nota: Si además quieres obtener el pico más alto o el más bajo de la división, eso ya sería otro tema, mira el método Math.Ceiling() y Math.Floor() y el resto de los métodos de esa Class.

Saludos.








luis456

Cita de: Eleкtro en 24 Septiembre 2014, 18:28 PM
Convertir a entero es realizar una conversion innecesarias, para evitarlo debes utilizar el operador de división correcto (el de enteros).


\ Operator
Divides two numbers and returns an integer result.

/ Operator
Divides two numbers and returns a floating-point result.

Nota: Si además quieres obtener el pico más alto o el más bajo de la división, eso ya sería otro tema, mira el método Math.Ceiling() y Math.Floor() y el resto de los métodos de esa Class.

Saludos.

Gracias Elektro

Jo no sabia de tantas formas mmm  , me alegra ya que me meto en mas historias de calculos pero ya sabes elektro   lo que "  se avecina  " jajajjaj

saludos espero que estes bien

Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

Pablo Videla

Cita de: Eleкtro en 24 Septiembre 2014, 18:28 PM
Convertir a entero es realizar una conversion innecesarias, para evitarlo debes utilizar el operador de división correcto (el de enteros).


\ Operator
Divides two numbers and returns an integer result.

/ Operator
Divides two numbers and returns a floating-point result.

Nota: Si además quieres obtener el pico más alto o el más bajo de la división, eso ya sería otro tema, mira el método Math.Ceiling() y Math.Floor() y el resto de los métodos de esa Class.

Saludos.
Tampoco sabía eso de la barra inversa retornaba el resultado a entero  :o :o esto aplica para .net en general? o es en varios lenguajes?

Eleкtro

#6
Cita de: DonVidela en 24 Septiembre 2014, 19:06 PMesto aplica para .net en general? o es en varios lenguajes?

Se aplica a VB.Net (no a C#), no se si habrá otros lenguajes que compartan esta ventaja similitud de diseño, pero por el momento no lo he notado.

Saludos!








Pablo Videla

Cita de: Eleкtro en 24 Septiembre 2014, 21:28 PM
Se aplica a VB.Net (no a C#), no se si habrá otros lenguajes que compartan esta ventaja similitud de diseño, pero por el momento no lo he notado.

Saludos!

Ahh!! ok, gracias, ahora me quedo mas tranquilo (no toco vb.net no me agrada su sintaxis)  :xD

Saludos!

luis456

Realmente funciona :)


Código (vbnet) [Seleccionar]
Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 \ 1, Num2 \ 2} _
                  .Distinct().ToArray



Gracias elektro

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas