Números, precisión y errores
Elige la representación y trata los cálculos rechazados de forma explícita.
Lee un Scientific Number
FScientificNumber(1.25, 3) representa 1250. Los valores finitos distintos de cero se normalizan a 1 <= abs(Base) < 10. El cero tiene base y exponente cero. El exponente es int64 y la mantisa tiene precisión double. Un rango amplio no proporciona aritmética de precisión arbitraria.
Comprueba el resultado
Usa Is Success o Get Error antes de almacenar un valor calculado. Las conversiones comprobadas y las operaciones Safe también devuelven éxito y error. Los errores se propagan por la aritmética en vez de convertirse silenciosamente en cero.
| Cálculo | Resultado esperado |
|---|---|
| 2000 + 3000 | 5000 |
| 2000 × 3000 | 6000000 |
| 3000 / 3 | 1000 |
| 2 elevado a 10 | 1024 |
| Raíz cuadrada de 144 | 12 |
| 2000 / 0 | DivisionByZero |
| Texto numérico inválido | ParseError |
Usa conversiones comprobadas al pasar a float/double. Un número de gran rango válido puede desbordar el tipo de destino.
Idle Mode
Idle Mode rechaza negativos y valores no nulos inferiores a uno; no los limita automáticamente. El cero está permitido. Elige la política antes de usar el sistema numérico y reinicia tras cambiarla. Prueba -2, 0.25 y 0 con ambas políticas si tu juego depende de estos casos.
Arrays
Para [10, 20, 30, 40, 50], Sum Of Array, Average Of Array, Min Of Array y Max Of Array deben devolver 150, 30, 10 y 50. Inspecciona los errores en entradas vacías o inválidas en vez de asumir que todo array produce un agregado utilizable.
Conserva los valores autoritativos en representación normal o Safe. Usa Packed cuando sea adecuada una representación gráfica aproximada.