![]() |
![]() |
![]() |
![]() |
![]() |
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 ![]() 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 ![]() ![]() ¿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 ![]() ![]()
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
![]() |
|
|
![]() |
||||
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 |
![]() |
|