diff options
| -rw-r--r-- | calculator.go | 3 | ||||
| -rw-r--r-- | ui.go | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/calculator.go b/calculator.go index d2371b7..fb1fc90 100644 --- a/calculator.go +++ b/calculator.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "math" "strconv" ) @@ -58,6 +59,8 @@ func parseOp(op byte) (func(lhs *float64, rhs float64), error) { *lhs = float64(int64(*lhs) % int64(rhs)) } }, nil + case '^': + return func(lhs *float64, rhs float64) { *lhs = math.Pow(*lhs, rhs) }, nil } return nil, OpError{op} } @@ -37,7 +37,7 @@ func (ui UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg.String() { case "ctrl+c", "Q": return ui, tea.Quit - case "+", "-", "*", "/", "%": + case "+", "-", "*", "/", "%", "^": if err := ui.calc.performOp(msg.String()[0]); err != nil { panic(err) } |