Para todas las funciones aritméticas, el tipo de resultado se calcula como el tipo de número más pequeño en el que encaja el resultado, si existe dicho tipo. El mínimo se toma simultáneamente en función del número de bits, si está firmado y si flota. Si no hay suficientes bits, se toma el tipo de bit más alto.
Las funciones aritméticas funcionan para cualquier par de tipos de UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32 o Float64.
El desbordamiento se produce de la misma manera que en C ++.
## más (a, b), a + b operador {#plusa-b-a-b-operator}
Calcula la suma de los números.
También puede agregar números enteros con una fecha o fecha y hora. En el caso de una fecha, agregar un entero significa agregar el número correspondiente de días. Para una fecha con hora, significa agregar el número correspondiente de segundos.
## menos(a, b), a - b operador {#minusa-b-a-b-operator}
Calcula la diferencia. El resultado siempre está firmado.
También puede calcular números enteros a partir de una fecha o fecha con la hora. La idea es la misma – ver arriba para ‘plus’.
Calcula el valor absoluto del número (a). Es decir, si un \< 0, devuelve -a. Para los tipos sin signo no hace nada. Para los tipos de enteros con signo, devuelve un número sin signo.
## GCD (a, b) {#gcda-b}
Devuelve el mayor divisor común de los números.
Se produce una excepción al dividir por cero o al dividir un número negativo mínimo por menos uno.