diff options
| -rw-r--r-- | func.go | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -12,6 +12,10 @@ func parseFunction(fn string) func(Calculator) { return trig(fn) case "asin", "acos", "atan": return invTrig(fn) + case "deg": + return deg + case "rad": + return rad } return nil } @@ -65,6 +69,18 @@ func invTrig(fn string) func(Calculator) { } } +func deg(c Calculator) { + if len(c.stack) > 0 { + c.stack[len(c.stack)-1] = degrees(c.stack[len(c.stack)-1]) + } +} + +func rad(c Calculator) { + if len(c.stack) > 0 { + c.stack[len(c.stack)-1] = radians(c.stack[len(c.stack)-1]) + } +} + // radians converts degrees to radians. func radians(deg float64) float64 { return deg * math.Pi / 180.0 |