Opened 12 years ago
Closed 12 years ago
#1720 closed defect (fixed)
Problemas con la represetación real de los segundos
Reported by: | Pedro Gea | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | Kernel | Version: | 3.1 |
Severity: | normal | Keywords: | |
Cc: |
Description
El uso de números reales para representar los segundos de una fecha (Date
) genera problemas de imprecisión.
Por ejemplo:
Real Date IndexToDate(DateToIndex(y2013m08d09h02i52s00)) == y2013m08d09h02i52s00;
Change History (5)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
Internamente se admite que los índices que represnetan las fechas (DateToIndex
, IndexToDate
) sólo pueden distinguir hasta las centésimas de segundo (de acuerdo con la variable estática: dsByDay_
).
Se propone modificiar asimismo los mecanismos de asignación del atributo second_
para que sólo admita uno de estos 6000 posibles valores.
comment:3 Changed 12 years ago by
Como ejemplo de esta limitación a centésimas de segundo, véase:
Real Second(IndexToDate(DateToIndex(y2013m08d09h02i52s00.1294567))); // -> 0.12
Nótese asimismo que el redondeo de los segundos se está haciendo hacia abajo.
comment:4 Changed 12 years ago by
(In [5984]) Refs #1720
Se redondean los segundos hasta las centésimas mediante la macro SECONDROUND, de acuerdo con la constante: SECONDPARTS.
Las fechas se muestran con los segundos enteros (si son enteros) o hasta las centésimas de segundo en otro caso.
El valor del índice utilizado en PutIndex
se redondea (en lugar de usar floor) para evitar el problema que origina el tique.
comment:5 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Véase #1576.