I have this recurring fantasy of programming the perfect calculator. I've found two or three very good ones: Frink , is a Java based calculator that I've become very fond of. It nearly has it all: Pros Runs anywhere, including cell phones and other small devices that have Java. Unit conversion including currencies, and timezones. Unlimited precision, interval arithmetic, complex numbers. Really fun tutorial . Cons Closed source. Java ;-) Qalculate! Pros Open Source Auto complete as you type, pretty cool. Pretty prints results, ex. sqrt(2) => √(2) or 2*3 => 2·3. Notion of exact values and showing fractional values. Weird numbers formats like Roman, Sexagesimal Can create your own functions that has dialog boxes. RPN, plotting, history Cons Too many menus buttons. Not fun, a little dry. Missing Brazilian Real for currency! No timezones. wxMaxima Pros Open source Complete computer algebra system. Plotting Cons No unit conversions No timezone conversions If I were to make a...