Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/11/2012, 19:03
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con decimales a la hora de buscar y comparar

Craso error....
9.45 no está entre 10 y 14, porque estás trabajando con ENTEROS, por lo que un número decimal es redondeado para ser usado en contexto de enteros. Eso es lo que se hace para hacer que las operaciones sean consistentes.

Ahora bien, el entero más cercano a 9,45 es 9, no 10, por lo que el rango leído es todo lo que sea igual o menor a 9.
Entonces, si el registro debe ser tal que rango_desde sea igual o menor a 9, y rango_hasta igual o mayor a 9, sólo hay un registro que lo cumple: El tercero, cuyo precio final es 130...

Diferente hubiera sido si el valor buscado fuese igual o mayor a 9,55, porque en ese caso hubiese sido convertido por redondeo a 10.

Ten en cuenta que las reglas de redondeo son las mismas usadas en matemáticas. Las mismas.
Si le dices a un profesor de matemática que 9,45 se redondea a 10, repruebas la materia sin más trámite.

¿Se entiende la lógica?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)