FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Fraccionarios en FireBird con Dialecto 3
Hola amigos, acudo a ustedes por el siguiente motivo...
Tengo una base de datos nueva y creada en FireBird 1.5 con Dialecto 3, en ella hice una tabla que la llame "Prueba", con un unico campo llamado "Valor" de tipo Double precision, luego hice el siguiente procedimiento almacenado llamado "SP_Prueba":
Que como pueden ver, dicho procedimiento almacenado solo guarda 1000 veces el valor 33.33 en la tabla "Prueba", luego voy a ver la tabla y efectivamente dicho valor en los mil campos es 33.33, es toda una maravilla (Ya que cuando lo hacia en Dialecto 1, no era exactamente ese el valor que me dejaba). Luego de dicha prueba hice otra... he cambiado el procedimiento almacenado por el siguiente:
Pero al ver la tabla, me encuentro con que el valor en esos 1000 registros es 33, cuando deberia ser 33.333333333333333. Luego hice otra prueba, 100/33 y el resultado fue 3, cuando deberia tener fraccionarios , si coloco el tipo de campo como Numeric(15,2), sucede lo mismo , luego hice 100/3.3 y allí el resultado fue 30.3 que en este caso si era el correcto, lo que me lleva a pensar que si no coloco en el divisor un numero decimal, el resultado devuelto no tendra decimales, asi el resultado verdadero lleve decimales. ¿Alguien sabe a que se debe esta situación o tiene alguna sugerencia al respecto?, por vuestro tiempo, amabilidad y paciencia prestados, muchisimas gracias .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#2
|
|||
|
|||
esta correcto el comportamiento y es lo que dice el standard sql:
cuando divides dos números, la escala resultante (parte decimal) es la suma de las dos escalas de los operandos.. aca son dos enteros, escala = 0, por lo tanto te lo redondea... prueba con 100 / 3.00 salu2 |
#3
|
||||
|
||||
Ahhh, ¿Si?, Caramba¡¡¡, muchas gracias pvizcay por tu comentario, Ahora me surge otra duda, ¿Hay alguna manera de que 100/3 me de 33.33?, Ya he probado cambiando los tipo de campo a Double precision y a Numeric(15,2), pero con ambos obntengo el mismo resultado.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#4
|
|||
|
|||
Hola amigo jhonny
intenta con esto,
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#5
|
||||
|
||||
Creo que si pones los decimales ya te funcionará perfecto y no te hará falta poner el cast:
Código:
resultado = 100.00 / 3.00; |
#6
|
||||
|
||||
Caramba¡¡¡, muchas gracias amigos, ayer me fui a casa un poco frustrado con el asunto, aunque debo decir que la respuesta de pvizcay ya me habia alentado, me sentia con los brazos cruzados al no dar con la solución .
Hoy 7:50 de la mañana por estos lados, ustedes dos han terminado de arreglarme el dia , muchisimas gracias a los tres, me han quitado la venda que tenia en mis ojos .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#7
|
|||
|
|||
Cita:
Cita:
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#8
|
||||
|
||||
Pues de nuevo gracias egostar, por tu ayuda y por tus palabras .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dialecto 1 o 3 ?? | TheWOlf | Firebird e Interbase | 2 | 13-07-2005 18:29:17 |
Problema con dialecto | T-man | Firebird e Interbase | 5 | 18-10-2004 16:22:16 |
Problema en Firebird con dialecto 3 | Leonidas | Firebird e Interbase | 1 | 24-07-2004 07:43:35 |
Configurar BDE INTERBASE/FIREBIRD DIALECTO 3 | ASAPLTDA | Conexión con bases de datos | 4 | 29-03-2004 23:21:30 |
Dialecto 3 y BDE | Pablillo | Conexión con bases de datos | 3 | 12-12-2003 17:36:28 |
|