calculadora_expressao
Uma calculadora de expressões aritméticas simples em Ruby. Você passa a expressão como texto e ela devolve o resultado, respeitando parênteses e a precedência dos operadores (divisão e multiplicação antes de subtração e soma).
Instalação
gem install calculadora_expressao
Ou adicione ao seu Gemfile:
gem "calculadora_expressao"
Uso
require "calculadora"
pegar("2+3*4") # => "14.0" (multiplica antes de somar)
pegar("10/4") # => "2.5"
pegar("5-2+1") # => "4.0"
pegar("2.5*2") # => "5.0"
# Parênteses, inclusive aninhados:
pegar("2*(3+4)") # => "14.0"
pegar("(10-4)/2") # => "3.0"
pegar("2*(3+(4-1))") # => "12.0"
calc = Calculadora.new
calc.calcular("100/5-10") # => "10.0"
O resultado é retornado como string, já que a expressão é resolvida passo a passo dentro do próprio texto. Para usar como número, converta com .to_f.
Operadores suportados
| Operador | Operação | Precedência |
|---|---|---|
( ) |
Parênteses | resolvidos primeiro, de dentro para fora |
/ |
Divisão | 1ª (maior) |
* |
Multiplicação | 2ª |
- |
Subtração | 3ª |
+ |
Soma | 4ª |
Números decimais (ex: 2.5) e negativos são aceitos.
Limitações
- A expressão não deve conter espaços: use
"2+3", não"2 + 3". - Multiplicação implícita não é suportada: escreva
"2*(3+4)", não"2(3+4)".
Licença
MIT