Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 5
Ir a la página 1, 2, 3, 4, 5  Siguiente
 
Truncar Campo Float A Dos Decimales
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Truncar Campo Float A Dos Decimales 
 
Hola a tod@s

Soy nuevo con gambas y tengo un problema. Os describo todos los elementos del problema.

1. Tengo una base de datos SQLite3
2. Varios campos y uno en particular con el tipo float

Cuando accedo con Connection1 desde Conexiones y hago una prueba con una sentencia SQL, me devuelve el valor, uno de ellos como ejemplo:

5,0642292490119E-321

El problema es cuando recupero por programación desde gambas a una Gridview, me devuelve 5,0642292490119E-321 y yo lo que quiero es un redondeo a 5,06

¿Por favor como lo hago?

He intentado muchas cosas pero no lo se resolver. Gracias.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
Utiliza la función Round(minumero,-2)

Bienvenido.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
shordi escribió: [Ver mensaje]
Utiliza la función Round(minumero,-2)

Bienvenido.


Gracias ya lo he hecho pero me devuelve 0, y no se porque.

Esto es lo que puse:
Gridviewdatos[c, 1].Text = Round(Resultado["Importe"], -2)
 



 
última edición por gambafeliz el Miercoles, 03 Julio 2019, 19:31; editado 1 vez 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
shordi escribió: [Ver mensaje]
Utiliza la función Round(minumero,-2)

Bienvenido.


Hola, por fin lo he podido solucionar.

Te cuento como lo he resuelto.

En el "SELECT" he hecho esto:

round(Importe, 2) as Importe

Esto lo que ha hecho es enviarme ya el campo de la sentencia SQL con el redondeo y ya lo toma gambas con el redondeo, ya tan solo envio el resultado a Gridview directamente sin tratarlo.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
gambafeliz escribió: [Ver mensaje]
Tengo una base de datos SQLite3

Bienvenido.
En las bases de datos Sqlite3 yo suelo poner REAL y no Float y todo va bien.
Creo que te encuentras ante algún error de diseño de la base de datos.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
tincho escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
Tengo una base de datos SQLite3

Bienvenido.
En las bases de datos Sqlite3 yo suelo poner REAL y no Float y todo va bien.
Creo que te encuentras ante algún error de diseño de la base de datos.
Saludos.


Hola

Seguramente es así, es que es mi primera incursión en SQLite3, además de Gambas3 y es un proyecto que lo empecé en PHP y procede de un archivo CSV donde yo lo exporto a SQLite3, los campos ya venían en Float y lo que hice es simplemente dejarlos así. he instalado DB Browser for SQLite y el campo no es Float y si es REAL como me habías dicho.

Como ya te has fijado por la historieta todo es un perfecto desarrollo basado en un novato en todos estos campos.
Como ya no me acordaba, en su día lo hice bien, pero como lo estoy comenzando nuevamente pero en gambas pues no lo miré y di por valido lo que en la Zona de Conexiones de Gambas3 tiene y ahí me decía en la estructura de la tabla que era Float y no REAL.

Ahora con esta nueva información que opinais. De momento Gambas3 informa mal de la estructura del campo o quizás es su forma de representarlo.

Oye gracias lo miraré para adaptarlo y seguiré preguntando sobre muchas mas cosas y espero que me ayudes en el futuro. Por cierto me encantó Gambas3, mi enhorabuena a los desarrolladores y demás personas que hacen que sea posible.
 



 
última edición por gambafeliz el Sabado, 06 Julio 2019, 11:27; editado 2 veces 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
gambafeliz escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Utiliza la función Round(minumero,-2)

Bienvenido.


Gracias ya lo he hecho pero me devuelve 0, y no se porque.

Esto es lo que puse:
Gridviewdatos[c, 1].Text = Round(Resultado["Importe"], -2)


Round de vuelve un valor numérico su asignación a un campo de texto, tal como lo haces, puede producir resultados espúreos (la coma por el punto y cosas así). Si añadieses la conversión a string str(round(resultado!importe,-2)).
De todas formas dejar el trabajo a la propia BBDD suele ser más rápido y efectivo.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
shordi escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Utiliza la función Round(minumero,-2)

Bienvenido.


Gracias ya lo he hecho pero me devuelve 0, y no se porque.

Esto es lo que puse:
Gridviewdatos[c, 1].Text = Round(Resultado["Importe"], -2)


Round de vuelve un valor numérico su asignación a un campo de texto, tal como lo haces, puede producir resultados espúreos (la coma por el punto y cosas así). Si añadieses la conversión a string str(round(resultado!importe,-2)).
De todas formas dejar el trabajo a la propia BBDD suele ser más rápido y efectivo.

Saludos


Gracias, seguiré haciéndolo por BBDD pero probaré su sugerencia como nuevo elemento de aprendizaje.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
shordi escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Utiliza la función Round(minumero,-2)

Bienvenido.


Gracias ya lo he hecho pero me devuelve 0, y no se porque.

Esto es lo que puse:
Gridviewdatos[c, 1].Text = Round(Resultado["Importe"], -2)


Round de vuelve un valor numérico su asignación a un campo de texto, tal como lo haces, puede producir resultados espúreos (la coma por el punto y cosas así). Si añadieses la conversión a string str(round(resultado!importe,-2)).
De todas formas dejar el trabajo a la propia BBDD suele ser más rápido y efectivo.

Saludos


Hola

He probado como ya te dije con motivo didáctico lo que me has propuesto pero no funciona así. Me devuelve 0 en todos los resultado. Solo por si acaso, es posible que se trate de un Bug que se paso con respecto a Float. Como dato añadido los campos están configurado en inglés de estados unidos. Te lo cuento desde el desconocimiento solo es por ayudar, por si acaso es algo que sirva a los desarrolladores de Gambas.

Gracias y definitivamente lo redondeo en la sentencia SQL.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truncar Campo Float A Dos Decimales 
 
gambafeliz escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
[quote user="shordi" post="44958"]Utiliza la función Round(minumero,-2)

Bienvenido.[/quote]

Gracias ya lo he hecho pero me devuelve 0, y no se porque.

Esto es lo que puse:
Gridviewdatos[c, 1].Text = Round(Resultado["Importe"], -2)


Round de vuelve un valor numérico su asignación a un campo de texto, tal como lo haces, puede producir resultados espúreos (la coma por el punto y cosas así). Si añadieses la conversión a string str(round(resultado!importe,-2)).
De todas formas dejar el trabajo a la propia BBDD suele ser más rápido y efectivo.

Saludos


Hola

He probado como ya te dije con motivo didáctico lo que me has propuesto pero no funciona así. Me devuelve 0 en todos los resultado. Solo por si acaso, es posible que se trate de un Bug que se paso con respecto a Float. Como dato añadido los campos están configurado en inglés de estados unidos. Te lo cuento desde el desconocimiento solo es por ayudar, por si acaso es algo que sirva a los desarrolladores de Gambas.

Gracias y definitivamente lo redondeo en la sentencia SQL.

No hay bugs en esas funciones probadisimas desde hace muchos años. Sería cuestión de ver tu diseño de base de datos y tú código.

Saludos
 




===================
No podemos regresar
 
última edición por shordi el Jueves, 04 Julio 2019, 13:46; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Truncar Un Archivo A Una Determinada Dimen... vuott Aplicaciones/Fragmentos de Código 2 Domingo, 17 Julio 2016, 15:17 Ver último mensaje
vuott
No hay nuevos mensajes Float De 8 Decimales? CanihoJR General 1 Miercoles, 25 Abril 2018, 16:11 Ver último mensaje
razaAztk
No hay nuevos mensajes Problema Con La Variable Float Guizans General 4 Miercoles, 25 Abril 2018, 19:49 Ver último mensaje
jsbsan
No hay nuevos mensajes Convertir String[] A Float gambafeliz General 14 Lunes, 26 Agosto 2019, 10:33 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 5
Ir a la página 1, 2, 3, 4, 5  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario