Closed JuanFdS closed 4 years ago
Una cosa que me parece al menos curiosa es que pasa cuando los numero los escribimos como Decimales pero con 0 por ejemplo:
> print 1.0
1
Quizá se parezca un poco raro a algún alumne, lo que me parece a mi es que estaría bueno que la decisión de si un número debería aparece con coma o no, no debería estar atado al numero en sí pero a de donde salió. Por ejemplo el resultado de una división, un número que esta escrito como 1.0
.
La verdad no estoy super convencido de esto tampoco solamente queria mencionarlo a ver que les parece
La otra vez con Juan miramos que en Wollok estamos haciendo
algo que me parece good enough. Siendo que ellos solo ven Number, que el show le saque ceros innecesarios me cierra bien...
Entiendo @ludat , eso de que lo que escribo no es lo que me muestra puede ser raro.
Pero creo que la idea de que el número se muestra dependiendo de donde viene tiene sentido cuando sabés que tenes diferentes tipos de numeros, o sea, que haces una diferenciación entre los que obtuviste de operaciones que dan entero y otras que dan decimales, no? :thinking:
Creo que acá como estamos yendo con Number se puede bajar a pocas reglas, que son:
Y mergeo ya que aprobaron (?
Qué
Queremos que cuando muestro un número que es entero, lo muestre sin la coma y los digitos decimales, o sea:
Cómo
Agregué un tipo nuevo,
RoundedNumber
y una función para obtener un RoundedNumber a partir de un Number. Cumple una doble función: Saber si el Number es entero o decimal, y asegurarme que ya está redondeado. Esto es para evitar el patrón de tener que redondear por un lado y luego hacer un if por si es fractional o no, ahora con la funcionrounded
ya hago ese paso y el valor del resultado me indica si es entero o decimal.Con eso las definiciones de
numberToIntegral
yshow
, en las que tengo que tener en cuenta si el valor es decimal o entero, creo que quedan más simples.Tests
Agregué un test para el show, y modifiqué uno de los tests que ahora se romperían porque cambio como mostramos algunos números.