Nomás hay que tomar en cuenta que 24999.00000001 es mayor que 24999. Deberás tener bien presente cómo vas a manejar los decimales, también cuentan.
Extraido de la ayuda de Delphi.
Description
Call Ceil to obtain the lowest integer greater than or equal to X. The absolute value of X must be less than MaxInt. For example:
Ceil(-2.8) = -2
Ceil(2.8) = 3
Ceil(-1.0) = -1
Hice la prueba y calcula bien hasta 4 decimales, supongo que no usarás más de esos.
De tal forma que si buscamos el valor 100.0001 lo asigna al rango 2 que es de 100 a 200.
Saludos
Les recuerdo a los dos que el tipo Currency NO TIENE MAS DE 4 DECIMALES. Es inútil buscarle más.
Si tuviera más no podría ser posible trabajar con currency y optar por otro tipo de coma flotante.
Es el formato ideal y justamente pensado y diseñado para trabajar con números y expresiones monetarias. No existe, hasta el momento, país cuyo sistema de moneda tenga una numeración inferior al centavo/céntimo.
Se pensarán que ya que no hay más allá del céntimo entonces porqué es que tiene 4 decimales. Pues, la respuesta es fácil: Multipliquen dos números cualesquiera con 2 decimales y díganme cuántos decimales se obtienen
. Además, esto permite que efectivamente cualquier operación que se realice sobre un Currency se haga con precisión exacta.
Recuerden que el Currency no es más que un alias del integer.
EDIT:
En lugar de un FloatToStr sugiero emplear la función que trabaja con el tipo adecuado: CurrToStr.
Saludos,