![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
A mi en FB 1.5.3 dicha consulta regresa 1. Y para comprobar lo dicho por Al:
Regresa 1,50 Por otro lado quiero aclarar que SI existe una función de redondeo para Firebird, desde FB 1.0 a versiones 1.5.x se debe utilizar la UDF TRUNCATE y/o I64TRUNCATE. ![]() Saludos, |
#2
|
||||
|
||||
Pues seguro, aquí va un pantallazo, espero que lo puedas ver:
![]() |
#3
|
||||
|
||||
Hola,
Lo veo "fuerte y claro" ![]() Acabo de ver que tu prueba corre en un FB 1.5.5 ¿habrá cambiado algo entre 1.5.3 y 1.5.5 como para que hayan variado los resultados? ¿O será que IBExpert me lo redondeó solito? Voy a probar con una "conexión cruda" y directa con isql para sacarnos dudas. Saludos, |
#4
|
||||
|
||||
Pues creo que ya podríamos confirmarlo: es un tema de versiones, desde Firebird 1.5.5 se ha cambiado el modo de regresar resultados numéricos.
Hice una prueba directa, empleando FB 1.5.3 y obtuve 1 empleando 90/60. Si indico 90.0/60.0 allí si regresa 1,5. Como lo ha indicado Casi, en 1.5.5 esto ha cambiado y regresa en coma flotante. Muy posiblemente la regla a aplicar ya no reside en los operandos sino en el tipo del resultado. Por seguridad si desea obtener el número truncado debe emplearse la función para ello. Como he comentado, SI existe desde FB 1.0 y se llama Truncate() pero necesita declararla. Desde FB 2.1 ya viene incorporada al motor y su nombre ha sido cambiado por Trunc(). Saludos, |
#5
|
||||
|
||||
Misterio desvelado. Seguramente está en las notas que publican sobre los cambios realizados
![]() |
#6
|
||||
|
||||
Esperen un momento.
Firebird 1.5.3 (Delphius, Al), resultado: 1 Firebird 1.5.5 (Casimiro), resultado: 1.5 Firebird 2.0 (Joe_Balda), resultado: 1.5 (por confirmar) Firebird 2.5 (ecfisa), resultado: 1 (por confirmar) ¿Realmente será un asunto de versiones? ¿Algo que dejó de estar en la versión 1.5.5 reapareció en la versión 2.5? ![]() |
#7
|
||||
|
||||
Ummm... me has dado que pensar Al.
Lo que si es bueno recalcar es que no es lo mismo hacer:
que hacer
En el primer caso el resultado dependenderá de como esté implementado el algoritmo para generar e interpretar el tipo. Esto es lo que hemos demostrado que varía de versión a versión. En el segundo caso, independientemente de la versión del motor, DEBERÍA regresar el entero redondeado. Y como ha mencionado Al, por defecto se aplica el redondeo al par más cercano o también conocido como método del banquero. Ahora bien, si se quiere hacer más líos podríamos comprobar si resulta ser lo mismo a esto:
Es decir: probar 4 posibilidades: Con/Sin cast y Con/Sin .0. De este modo podríamos armar una tabla de 2 entradas y comparar resultados. ¿Les parece? ![]() EDITO: Por favor, a fin de evitar mayor confusión que la generada, no digan 2.5 ¡Digan hasta el apellido! mencionen la sub-versión menor. Tomensé la molestia de decir ese numerito que mucho importa; aunque no lo crean. Es decir: 2.5.algo Saludos, |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Parte entera y decimal | joanajj | Varios | 6 | 16-01-2008 07:51:09 |
falla en división | mamaro | Firebird e Interbase | 11 | 12-02-2007 17:48:44 |
Parte entera | amedina | Varios | 1 | 20-08-2005 03:06:04 |
Como extraer parte entera de una fraccion | JODELSA | Varios | 3 | 23-05-2003 17:05:26 |
![]() |
|