Hola Casimiro,
Si te fijás en la implementación del método closeTo: de la clase Float verás que utiliza una precisión fija de 0,0001. Para usar una distinta se podría usar el mensaje closeTo:precision: pero el enunciado del TP usa closeTo: y eso no lo pueden modificar.
La mejor solución es con roundTo: como sugerís. Simplemente redondeando a un centécimo antes de devolver el precio:
^ precio roundTo: 0.01
No sé qué es lo que te dio error ahí. ¿Comparaste el valor del número redondeado al depurar el código? Si no te redondea bien probá lo siguiente:
^ (precio asMinimalDecimalFraction roundTo: 1/100) asFloat
Saludos,
Tomás
Hola!
Muchas gracias por la respuesta. Lamentablemente probé ambas soluciones pero ninguna funciono. Por alguna razón cuando uso el roundTo: 0.01 no redondea la cifra, me sigue quedando el mismo numero y pasa lo mismo con la otra solución. También probé redondear con mas y menos cifras, pero tampoco resuelve el problema.
No se si mandar el trabajo así como esta, ya que en otra computadora pasa las pruebas unitarias de manera correcta, pero tampoco se que otra opción tengo para redondear a mano ese numero.
De nuevo, muchas gracias por la respuesta.
Casimiro.
Probá el redondeo de manera aislada en el Playground y fijate qué te imprime en el Transcript. Si ahí sí te funciona entonces el problema está en otra parte de tu código y si no entonces dejá el redondeo y mandalo así.
Saludos,
Tomás