Contents:
bc: Simple Math at the Shell Prompt
bc: Hexadecimal or Binary Conversion
Gotchas in Base Conversion
bc's Sine and Cosine Are in Radians
Base Conversion Using cvtbase
Quick Arithmetic with expr
Total a Column with addup
It's Great to Have a Spreadsheet
Business Graphics with ipl
Want to do a few simple calculations? Standard UNIX provides two simple calculators: dc (desk calculator) and bc. (Who knows what the b stands for? The manual page refers to it only as "an arbitrary precision arithmetic language.")
To a novice, dc sounds more promising. However, it's a reversePolish calculator. You enter each operand on a separate line, followed by an operator. The operands are stored on a stack; the operator pops them from the stack, replacing them with the result. Unfortunately for the novice, the result isn't printed. You need to type p ("print") to get any output.
bc is actually much easier to use:
%bc 5*2
10 [CTRLd] %
Simply type an arithmetic expression, followed by a RETURN. The result will be printed to standard output. Type CTRLd to exit.
The only thing you need to learn to find bc really useful is
the scale command, which tells the calculator how many decimal
places to use. The default is 0, so typing an expression like
10/4
yields the unfortunate answer 2. However:
%bc scale=2 10/4
2.50
gives a more acceptable two decimal places. Scale can be set from 0 to 99 decimal places.
As an alternative, invoke bc with the l option, which will automatically give you up to 20 decimal places worth of precision (but a lot of trailing zeros on simple division).
bc is really quite complete  you can even define your own functions. See the bc manual page for details. It's also useful for base conversion (49.2).
expr can also be used to do simple math (49.6) on the command line, but it's really better suited for doing math in shell scripts (45.28).
Of course, if you're running the X Window System (1.31), you can just use xcalc, which draws a Texas Instruments or HP calculator right on the screen, and lets you punch keys on the keyboard or with the mouse.
