close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

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 Pedro Gea

Véase #1576.

comment:2 Changed 12 years ago by Pedro Gea

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 Pedro Gea

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 Pedro Gea

(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 Pedro Gea

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.