DarwinBotsManual
Abrir la app EnglishEN

ceil

Pone un techo: de los dos números de arriba de la pila deja el menor, así x 100 ceil nunca pasa de 100.

Datos

Palabra
ceil
Familia
Avanzados
Pila entera
saca 2, pone 1
Qué hace
Saca dos números y apila el menor. Arriba de 16.777.216 la comparación pierde precisión.
Costo
Comando avanzado; debugint y debugbool no cuestan
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

x techo ceil deja el menor de los dos: x si está por debajo del techo, y el techo si no. El nombre viene de ahí (ceiling, techo), aunque el resultado sea el mínimo, lo que confunde a más de uno. 7 100 ceil da 7 y 700 100 ceil da 100.

Se usa para que un valor calculado no se pase de un límite antes de guardarlo. Este bot empuja hacia adelante con la décima parte de su energía, pero nunca con más de 30:

cond
start
  *.nrg 10 div 30 ceil .up store
stop

Combinado con su par, floor, encierra un valor en un rango: x 50 ceil 5 floor queda entre 5 y 50 (ver el ejemplo de Saber en Avanzados).

Una rareza que solo se nota con números enormes: ceil compara con menos precisión que floor, y arriba de 16.777.216 el resultado puede salir corrido en algunas unidades (más cuanto más grande sea el número). Con números del tamaño de la memoria nunca pasa. Para escribir el mínimo directamente en una celda está ceilstore.