none
llamada ambigua entre metodos y propiedades decimal y double RRS feed

  • Pregunta

  • Hola tengo un problema con la siguiente linea

    Math.Truncate(Convert.ToInt64(ArraylistHilo.Count) / Convert.ToInt64(numeroDouble));

    donde ArraylistHilo es un arraylist y tomo la cuenta (count) de items que hay en el array para divirlo(/) con numeroDouble que es un numero doble pero los convierto todos dos a long 

    Y me saca el error llamada ambigua entre metodos y propiedades decimal y double, no entiendo que esta pasando???

    jueves, 18 de octubre de 2018 17:09

Respuestas

Todas las respuestas

  • Deleted
    jueves, 18 de octubre de 2018 17:30
  • hola walter 

    El error persiste lo que pasa es que estoy pasando de codigo vb .net a c# pero me sale el mencionado error 

    en vb .net se encuentra asi:

    Dim numeroDoble As Double = EnumConfiguracion.HConcatenarArchivos 'el valor de este es 242
        LongCantidadDatos = Truncate(CDbl(ArraylistHilo.Count) / numeroDoble)
    en c# a lo que me escribiste "Debería ser igual a esto..."
    LongCantidadDatos = Math.Truncate(ArraylistHilo.Count/numeroDoble);
    el mismo error: the call is ambigous between.... en Truncate se coloca en rojo!! no deja compilar

    jueves, 18 de octubre de 2018 18:52
  • Deleted
    • Marcado como respuesta greg_dorian jueves, 18 de octubre de 2018 19:40
    jueves, 18 de octubre de 2018 19:06
  • double numeroDoble = EnumConfiguracion.HConcatenarArchivos;
    double LongCantidadDatos = Math.Truncate(ArraylistHilo.Count/numeroDoble);
    el método debe devolver un double, porque es una división entre doubles. El operador de división promueve el Count a double antes de operarlo.

    bien hice la conversión de 

    Math.Truncate(ArraylistHilo.Count/numeroDoble)

    Convert.ToInt64(Math.Truncate(ArraylistHilo.count/numeroDoble))

    ya que LongCantidadDatos es de tipo long (o int64)

    jueves, 18 de octubre de 2018 19:40