Problemas comparando floats

Hola a todos :slight_smile:

Tengo una pregunta de esas que tienen premio…

Atención a cómo me están fallando unos tests en la máquina de
integración continua.
14) Failure:
test_reduce_credit_method(UserTest) [./test/unit/user_test.rb:160]:
<15.0> expected but was
<15.0>.

Llamadme triquismiquis, pero yo siempre había pensado que 15.0 es
igual a 15.0 :slight_smile:

Lo más jodido, es que en local los tests pasan y todo funciona a la
perfección.

¿¿Alguien ha tenido algún problema similar comparando floats??

Un saludo, y gracias! :wink:


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]

Tienes que usar BigDecimal o double porque quizas hay una diferencia
entre tus dos 15 quizas el primero es 15.0001 y el otro 15.0000011
pero el float de ruby no puede ver bien. Un BigDecimal deberia estar
bien.

Supongo que el problema está en que comparaba BigDecimals con dos
decimales sacados del modelo con floats picados a mano. Al final he
pasado a comparar los strings, que ahí no hay error de precisión que
valga xD

Gracias Patrick

On 10/12/07, Patrick A. [email protected] wrote:

Tienes que usar BigDecimal o double porque quizas hay una diferencia
entre tus dos 15 quizas el primero es 15.0001 y el otro 15.0000011
pero el float de ruby no puede ver bien. Un BigDecimal deberia estar
bien.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]