Acabo de encontrar un problema extraño en el lenguaje de programación ruby, no es un gran problema, pero simplemente no puedo entender por qué sucede. Me interesaría si alguien conoce el problema de mi problema.¿No es 00.0 lo mismo que 0.0?
En ruby puede escribir 0
o 00
, eso no importa, se trata del mismo resultado.
Si ejecuta 0 === 00
, también obtiene true
, lo que significa que las dos entradas son exactamente iguales.
0.0
es igual también 0
, por lo que lógicamente también debe 00.0
igual 0.0
pero el problema es, que si se intenta utilizar el número 00.0
a continuación, sólo obtendrá un error. Si ejecuta por ejemplo:
a = 00.0
obtiene este error:
syntax error, unexpected tINTEGER
Por supuesto sé que esto es un pequeño problema, pero como se ha dicho que me gustaría entender por qué el equipo no lo hace tratar 00.0
lo mismo que 0.0
?
¿Es 00.0 matemáticamente legítimo? – texasbruce
Es _mathematically_ legítimo. La pregunta es si es legítimo en ruby. – Anthales
Haré solo un comentario, ya que no tengo una base concreta para esto. Una idea, sin embargo, es que quizás Ruby evalúe 0 === 00 en un nivel de bit, pero una vez que se agrega un decimal, la evaluación se realiza como flotantes. En ese punto 00.0 no es una entrada de fiar y probablemente no será igual a nada, creo. – Colleen