Closed PalumboN closed 3 years ago
Es un feature, y se puede configurar para que trunque, redondee o tire error (eso se cuenta en el apunte Módulo 04: Objetos básicos. Números. Strings. Fechas. Conjuntos. Listas). Igual, igual, lo chequearía cambiando Window > Preferences > Wollok > Number configuration.
Lo segundo: podríamos tomar un comportamiento default, para mí flasheamos demasiado con Lucas y Nico y es un feature que no solo no se usa sino que nosotros ni siquiera sabemos que está, jajaj.
Jajajaj ok, sí recordaba que algo de eso pasaba. Ahora el "default" es truncar por lo que entiendo, tenía pensado tener ese mismo comportamiento para TS ya que sino algunos juegos andan en xtext pero no en ts.
@fdodino estamos resolviendo este issue para que, en primera instancia, Wollok-TS se comporte como el default actual de Wollok. Hablando con @npasserini @nscarcella @lspigariol creeríamos que el default era el redondeo, además aparece como el default en la config:
Pero probando en la consola vimos que lo que está haciendo es truncándolo. Te acordás qué habíamos decidido en su momento? :P Cuál esperarías que fuera el comportamiento default?
También charlamos sobre los problemas de precisión que tiene Wollok (y eventualmente cualquier computadora) y sobre cómo queremos tratarla:
.999999999
por ejemplo.Holis!!
Lo está redondeando, pero toma en consideración los decimales (por default 5), entonces
>>> [1, 2, 3].get(0.99999)
1
>>> [1, 2, 3].get(0.999999)
2
No se qué prefieren hacer acá, en su momento hubo una discusión muy larga y con Lucas y NicoP cerramos en poder configurarlo. No se si valió tanto la pena, con el diario del lunes, pero me resulta simpático cómo lo maneja ahora.
Ok, entonces lo que hace es redondear siempre a 5 decimales, y para el caso del list.get
se trunca la parte entera de ese redondeo, estoy en lo correcto?
Tenemos que pasar esta lógica a TS, la mantenemos así o la cambiamos? En la charla del otro día dijimos de redondear pero no con todos estos detalles (sigue habiendo diferencias con lo que hicieron les becaries).
@fdodino @npasserini @nscarcella @lspigariol
Ok, entonces lo que hace es redondear siempre a 5 decimales, y para el caso del list.get se trunca la parte entera de ese redondeo, estoy en lo correcto?
Sí, es correcto!
Tenemos que pasar esta lógica a TS, la mantenemos así o la cambiamos?
La idea me parecía bien: lista.get(0.9) la redondearía a list.get(1), es muy retorcido cómo funciona hoy, podemos incluso ajustarlo en Wollok Xtext (no me lleva mucho tiempo).
Con @tfloxolodeiro nos dimos cuenta que Wollok Xtext trunca el índice del
get
a un número entero. Por ejemplo:No recuerdo si esto es un bug o un feature, para replicarlo en TS. @fdodino @nscarcella @npasserini etc etc...