Operadores aritméticos
Segue a lista dos operadores aritméticos:
+adição-subtração*multiplicação/divisão com ponto flutuante//divisão inteira (floor division)%módulo (resto da divisão)^exponenciação-negação numérica (unary minus)
Os operadores de soma, subtração e multiplicação seguem a regra de que, se um número for float e o outro for integer, o resultado será float. Porém, se ambos forem integer, o resultado será integer. Na divisão, o resultado será sempre float.
| Operação | Resultado | Descrição |
|---|---|---|
| 10 + 5 | 15 | Soma |
| 10 - 5 | 5 | Subtração |
| 10 * 5 | 50 | Multiplicação |
| 10 / 3 | 3.3333333333333 | Divisão |
| 10 // 3 | 3 | Divisão inteira |
| 10 % 3 | 1 | Módulo (resto da divisão) |
| 10 ^ 2 | 100.0 | Exponenciação |
Operador de divisão inteira
Section titled “Operador de divisão inteira”Este operador foi introduzido na versão 5.3. A divisão com este operador sempre arredondará o número na direção do negativo.
$$ \overleftarrow{\quad -3 \quad -2 \quad -1 \quad …} $$
Exemplo:
> 5 // 2 -- 2> -5 // 2 -- 3> 20 // 7 -- 2> -20 // 7 -- 3Precedência
Section titled “Precedência”| Operador | Descrição |
|---|---|
^ | Exponenciação |
- # ~ not | Operadores unários |
* / // % | Multiplicação, Divisão, Divisão Inteira, Módulo |
+ - | Adição e Subtração |
.. | Concatenação |
<< >> | Operadores bit a bit |
& | Operador bit a bit |
~ | Operador bit a bit |
< > <= >= ~= == | Operadores Relacionais |
and | Operador Lógico |
or | Operador Lógico |
local resultado = 2 + 3 * 4 -- A multiplicação tem precedência maior que a adiçãoprint("Resultado de 2 + 3 * 4: " .. resultado) -- Saída: 14
local resultado2 = (2 + 3) * 4 -- Os parênteses mudam a ordem das operaçõesprint("Resultado de (2 + 3) * 4: " .. resultado2) -- Saída: 20
local resultado3 = 2 ^ 3 * 4 -- A exponenciação tem precedência maior que a multiplicaçãoprint("Resultado de 2 ^ 3 * 4: " .. resultado3) -- Saída: 32.0