none
Problema con decimales

    Pregunta

  • Buenas: tengo un alicacion desarrollada con .net2008, como decimal uso el punto, ahora necesito usar la coma, pero tengo el siguiente problema: en un mask text: coloco"123.45", ese valor se lo asigno a una variable, y el resultado es "12345D", probe varias cosas como varables de tipo decimal y double, agradeceria la ayuda de alguien, saludos

    martes, 10 de mayo de 2016 9:30

Respuestas

  • Eso es el entorno de desarrollo, o la herramienta que utilizas como editor.

    Por el error que te da supongo que el lenguaje que utilizas es Visual Basic .NET.

    En tal caso las instrucciones equivalentes a las que te ponía ahí arriba (esas estaban en C#) serían:

            ' Para el punto como separador
            Dim num As Decimal = Decimal.Parse("123.45", System.Globalization.CultureInfo.InvariantCulture)
    
           .....
    
            ' Para la coma como separador
            Dim num As Decimal = decimal.Parse("123,45", System.Globalization.CultureInfo.GetCultureInfo("es-es"))


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 10 de mayo de 2016 11:44

Todas las respuestas

  • Pero ¿cómo realizas la conversión a decimal? Debes especificar la cultura a utilizar para convertir de string a decimal.

    Si utilizas el punto como separador decimal puedes utilizar la cultura Invariant:

    decimal num = decimal.Parse("123.45", System.Globalization.CultureInfo.InvariantCulture);

    Si utilizas la coma podrías utilizar por ejemplo la cultura española:

    decimal num = decimal.Parse("123,45", System.Globalization.CultureInfo.GetCultureInfo("es-es"));


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 10 de mayo de 2016 10:38
  • disculpame soy bastante novato en vs2008

    me da el siguiente error:

    "Decimal' es un tipo y no se puede usar como expresión. "
    esta marcado donde comienza en "decimal num"
    gracias por tu ayuda
    martes, 10 de mayo de 2016 11:32
  • ¿En qué lenguaje estás programando?


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 10 de mayo de 2016 11:36
  • visual studio 2008
    martes, 10 de mayo de 2016 11:37
  • Eso es el entorno de desarrollo, o la herramienta que utilizas como editor.

    Por el error que te da supongo que el lenguaje que utilizas es Visual Basic .NET.

    En tal caso las instrucciones equivalentes a las que te ponía ahí arriba (esas estaban en C#) serían:

            ' Para el punto como separador
            Dim num As Decimal = Decimal.Parse("123.45", System.Globalization.CultureInfo.InvariantCulture)
    
           .....
    
            ' Para la coma como separador
            Dim num As Decimal = decimal.Parse("123,45", System.Globalization.CultureInfo.GetCultureInfo("es-es"))


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 10 de mayo de 2016 11:44
  • hola

    si quieres definir la cultaura para el sitio define en el web.config

    <globalization uiCulture="en" culture="en-US" />

    de esta forma el sitio tomara el punto como separador decimal y no tendras que definirlo en cada operacion que realices

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 10 de mayo de 2016 12:27
  • Buenas. agradeceria su ayuda

    estoy desarrollando una aplicacion con vs2008  usaba el punto como decimal, ahora tengo que usar la coma

    mi problema es el siguiente cuando en un maskedtext inserto "123.56" y se lo asigo a una variable, me pone "12356"

    ahora si en maskedtext inserto "123,56" y se lo asigo a una variable, me pone "123.56"

    agradeceria su ayuda


    ivan

    martes, 10 de mayo de 2016 12:30
  • duplicado

    Problema con decimales



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 10 de mayo de 2016 12:43
  • hola chicos: abuso a su sabiduria, quisiera saber como puedo hacer para detectar si un numero es entero o decimal,

    agradeceria su ayuda


    ivan

    miércoles, 25 de mayo de 2016 11:06
  • Hola, en qué lenguaje programas? No parece que este sea el foro correcto para tu pregunta. Dime en que lenguaje programas y muevo tu pregunta ok? Saludos

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 27 de mayo de 2016 7:16
    Moderador
  • Que tal amigo prueba con esta funcion

       private bool esNumeroEntero(double valor)
            {
                bool isInt = valor % 1 == 0;
                return isInt;
            }
    

    OBS: Favor vota si te es útil la información.
    Saludos
    Bader Molinas - Paraguay
    https://deveintel.wordpress.com/

    viernes, 27 de mayo de 2016 15:00
  • estoy programando visual studio 8

    ivan

    viernes, 27 de mayo de 2016 19:17
  • hola

    que es visual studio 8? eso no represente nada, cuando se refiere a un lenguaje esta relacionado con c# o vb.net

    ademas en .net tampoco exite ninguno con un 8, o programas en VB6 ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 28 de mayo de 2016 0:02
  • visual Studio 8? La versión de .net 2005?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    sábado, 28 de mayo de 2016 0:14
    Moderador
  • estoy programando con vb.net 2008

    ivan

    sábado, 28 de mayo de 2016 11:45
  • para detectar si un numero es decimal o entero a mi modo de ver deberás aplicar lo siguiente.

    un numero entero siempre se puede convertir a decimal. Un numero decimal a entero daría una excepción. Luego si haces un Int32.Parse(numero.ToString()) y te salta una excepción de tipo FormatException puedes asegurar que el número es decimal.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    sábado, 28 de mayo de 2016 17:42
    Moderador
  • Te dejo este codigo espero y te sirva 

     Dim totalFinal As Decimal = 0
                Dim value As Decimal
                If Decimal.TryParse(total, value) Then
                    totalFinal = total
                    txtUnidades.Text = totalFinal
                    txtUnidades.Focus()
                ElseIf Not IsNumeric(total) Then
                    Myalert("Error. No es un número")
                Else
                    totalFinal = total + unidad
                    txtUnidades.Text = Replace(totalFinal.ToString("N0", CultureInfo.CreateSpecificCulture("es-PE")), ".", ",")
                    txtUnidades.Focus()
                End If

    domingo, 29 de mayo de 2016 4:12