none
Cantidades en vista de sql se muestran con este formato --> 1.05022e+007 Ayuda RRS feed

  • Pregunta

  • Hola amigos

    Espero que puedan orientarme sobre un caso extraño que no me había ocurrido mientras he utilizado SQL.

    Tengo una tabla de tipo vista donde algunos campos corresponden a cantidades, me extraña demasiado que esas cantidades se muestran tal como se ve en la imagen. Alguna sugerencia para quitar el signo +, la letra e que no tiene nada que hacer ahí y solo poder ver las cantidades  como son?

    

    Desde ya, gracias por su ayuda.


    viernes, 19 de julio de 2019 1:01

Respuestas

Todas las respuestas

  • Hola Zarpis:

    Repasa los datos que corresponden a esas filas, porque contienen un número demasiado grande para lo que deseas mostrar.

    Un ejemplo y una posible solución (mi recomendación es que repases los datos)

    declare @tbl table (neto float)
    insert into @tbl (neto)
    values (922320368);
    
    SELECT o.neto, 
           o.neto * o.neto AS doble, 
           o.neto * o.neto * o.neto AS tr, 
           CAST(o.neto * o.neto * o.neto AS NUMERIC(36, 2))
        FROM @tbl o
    

    Números exactos

    https://docs.microsoft.com/es-es/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-2017

    Salida


    • Editado Javi Fernández F viernes, 19 de julio de 2019 4:08 Incluir salida
    • Propuesto como respuesta Pablo RubioModerator viernes, 19 de julio de 2019 17:08
    • Marcado como respuesta Zarpis sábado, 20 de julio de 2019 0:05
    viernes, 19 de julio de 2019 4:07
  •  quitar el signo +, la letra e que no tiene nada que hacer ahí

    Se llama "notación científica", y es una forma de expresar números que son demasiado grandes para presentarlos cuando se escriben "en forma normal". Por ejemplo, 1.234e+45 significa "1.234 por diez elevado a 45" o en otras palabras, "añadir 45 ceros detrás de la coma". 1.21826e+007 es lo mismo que 12182600 (siete ceros a partir de la coma).

    Eso no está grabado dentro del número en la base de datos. La base de datos contiene el valor en binario, y cuando un programa cliente consulta el valor, le llega en binario. El formato de presentación en pantalla lo pone el programa cliente y no la base de datos. En tu caso concreto, el programa cliente que has usado es SQL Server Management Studio (SSMS), y ese formato raro que ves lo ha puesto el propio SSMS.

    En SSMS no hay nada para configurar el formato. La solución es convertir el valor a otro tipo de dato que no se formatee de esa manera (ya te han puesto un ejemplo en una respuesta anterior). Pero ojo, ese "truco" solo es válido para SSMS. Cuando esos datos los consumas desde un programa cliente, el formato lo aportará ese programa cliente, y no tiene por qué parecerse nada al formato que aplica SSMS.

    viernes, 19 de julio de 2019 6:15
  • Me ha quedado claro, muchas gracias por tu ayuda.

    sábado, 20 de julio de 2019 0:05
  • Gracias por la aclaración. Saludos.
    sábado, 20 de julio de 2019 0:06