Previous: Variables Assigned at Run Time, Up: Unit Expressions [Contents][Index]

The original `units`

assigned multiplication a higher
precedence than division using the slash. This differs from the
usual precedence rules, which give multiplication and division equal
precedence, and can be confusing for people who think
of units as a calculator.

The star operator (‘`*`’) included in this `units`

program
has, by default, the same precedence as division,
and hence follows the usual precedence rules. For backwards
compatibility you can invoke `units`

with the `--oldstar`
option. Then ‘`*`’ has a higher precedence than
division, and the same precedence as multiplication using the space.

Historically, the hyphen (‘`-`’) has been used in technical
publications to indicate products of units, and the original
`units`

program treated it as a multiplication operator.
Because `units`

provides
several other ways to obtain unit products, and because ‘`-`’ is a
subtraction operator in general algebraic expressions, `units`

treats the binary ‘`-`’ as a subtraction operator by default.
For backwards compatibility use the `--product` option, which
causes `units`

to treat the binary ‘`-`’ operator as a
product operator. When ‘`-`’ is a multiplication operator
it has the same precedence as multiplication with a space, giving it a
higher precedence than division.

When ‘`-`’ is used as a unary operator it negates its operand.
Regardless of the `units`

options, if
‘`-`’ appears after ‘`(`’ or after
‘`+`’, then it will act as a negation operator. So you can always compute 20
degrees minus 12 minutes by entering ‘`20 degrees + -12 arcmin`’.
You must use this construction when you define new units because you
cannot know what options will be in force when your definition is
processed.

Previous: Variables Assigned at Run Time, Up: Unit Expressions [Contents][Index]