- Quick start
- Unit conversion
- Operations
- Numbers
- Currency
- Percentage
- Scales
- Variables
- Constants
- Functions
- CSS
- Tokens
- Units
- Formatting
- Shortcuts
- Import & Export
- Translation

Numi supports many units, and allows to easily convert one into another like `$20 in Euro`

or `20 cm in inches`

. When it's needed, Numi will convert units automatically, like in `20 CAD + 4 Euro + 5 GBP`

.

You can easily convert time between time zones and get current time in different locations like `Seoul time`

or `now in Germany`

.

Numi supports word operations, scales and different numeral systems. So you can calculate `3 times 4`

or use `$1k`

instead of `$1000`

and convert `240 to hex`

. App allows to set variables, like `var = $20 - 5%`

. Numi also supports tokens for operations like `sum`

for sum of all results above or `prev`

for the result on the previous line.

Numi supports many mathematical functions, constants and friendly percentage functions like `20% of $10`

or `5% of what is 6 cm`

. Numi allows you to format your calculations with labels, comments and headers. Use special shortcuts to improve your calculation typing, like **⇧⌘0** for surrounding with parentheses.

With **in (into, as, to)** you can convert one unit into another:

```
$30 in Euro
```

Numi will automatically convert units to perform operations if it's needed.

```
$30 CAD + 5 USD - 7EUR
```

In the first step all values will be converted to the Euro, then the addition will be performed.

Use `time`

or `now`

function to get time in your time zone. You can prefix this functions with time zone location (or use `in`

with time zone suffix) to get current time for specified location:

```
PST time
New York time
Time in Madrid
Now in Seoul
```

Results are always in sync with global time, so, at any point of time you will get the right time.

It's also possible to convert specific time or date from one time zone into another. Or calculate difference between time in different time zones:

```
2:30 pm HKT in Berlin
13:30 PST in local
Madrid time - Los Angeles time
```

You can use sign and word operators.

```
$7 × 56
8 times 9
```

Operation | Sample |
---|---|

Addition | +, plus, and, with |

Subtraction | -, minus, subtract, without |

Multiplication | *, times, multiplied by, mul |

Division | /, divide, divide by |

Exponent | ^ |

Bitwise And | & |

Bitwise Or | | |

Bitwise Xor | xor |

Left Shift | << |

Right Shift | >> |

Modulo | mod |

Several expressions might be stacked together:

```
1 meter 20 cm = 120 cm
```

Expressions will be multiplied if used in parentheses:

```
6 (3) = 18
```

Besides decimal numeral system, it is possible to use numbers in binary, octal or hexadecimal form using appropriate prefix: **0b**, **0o** and **0x**. You can change output as well:

```
0b110111011
0o1435343 in hex
0xfff in bin
```

You can use `sci`

or `scientific`

to format results in scientific notation:

```
5 300 in sci
```

You can use ISO 4217 codes for currency (like USD, RUB, CAD etc). You can also use common currency names and signs, like **$** for the US dollars, **roubles** for Russian roubles, or **€** for Euro.

Numi updates currency rates several times a day using open exchange rates service.

In addition to general percentage operations like adding or subtracting percent of value ($10 - 40%), you also can use additional operations:

Operation | Example |
---|---|

Percentage value | 20% of $10 |

Adding percentage | 5% on $30 |

Substracting percentage | 6% off 40 EUR |

Percentage value of one value relative to another | $50 as a % of $100 |

Percentage addition of one value relative to another | $70 as a % on $20 |

Percentage subtraction of one value relative to another | $20 as a % off $70 |

Value by percent part | 5% of what is 6 EUR |

Value by percent addition | 5% on what is 6 EUR |

Value by percent substraction | 5% off what is 6 EUR |

Scales used for shorter form of writing big numbers. For instance, instead of typing $2000 you can use shorter variant:

```
$2k
```

Please note that one-letter scales are case-sensitive, since **m** used for meters, and **K** used for Kelvins. Supported scales:

- Thousand: k, thousand
- Million: M, million
- Billion: billion

You can declare variables and reuse them using the **=** operator. Please note some characters and keywords cannot be used as a variable. For example, **K** might be used as a temperature unit in Kelvin. Variable names should not contain whitespaces or special characters, and should not start with number:

```
v = $20
v2 = 5%
v times 7 - v2
v += $10
```

Description | Value |
---|---|

Pi | 3.1415926536 |

E | 2.7182818285 |

By default trigonometrical functions uses parameters in radians.

Description | Function | Example |
---|---|---|

N-th root | root | root 2 (8) |

Square root | sqrt | sqrt 16 |

Cubed root | cbrt | cbrt 8 |

Absolute value | abs | abs(-4) |

Logarithm | log | log 2 (10) |

Natural logarithm | ln | ln 3 |

Factorial | fact | fact 5 |

Rounding | round | round 3.45 |

Ceiling | ceil | ceil 3.76 |

Flooring | floor | floor 2.56 |

Sine | sin | sin 45° |

Cosine | cos | cos 3.45 |

Tangent | tan | tan 8 |

Arcsine | arcsin | arsin 30 |

Arccosine | arccos | arccos 85 |

Arctangent | arctan | arctan 9 |

Hyperbolic sine | sinh | sinh 3 |

Hyperbolic cosine | cosh | cosh 9 |

Hyperbolic tangent | tanh | tanh 11 |

Numi supports several CSS units:

- pixels (px)
- points (pt)
- em

For example:

```
12 pt in px
```

Em is set to 16 px by default, but you can assign different value:

```
em = 20px
1.2 em in px
```

Conversion from screen units to other length units performed using pixel per inch value (ppi). By default **ppi** is set to 96 pixels, which mean in every inch there're 96 pixels:

```
1 inch in px = 96 px
```

You can set custom value for **ppi**. For instance, here is calculation for iPhone 6 with ppi = 326:

```
ppi = 326
1 cm in px = 128,35 px
```

Tokens are special sort of variables. They are useful when you want to reuse result from previous line or calculate sum above.

Use `prev`

token to use result from previous line:

```
Cost: $20 + 56 EUR
Discounted: prev - 5% discount
```

You can calculate sum of all lines above (until empty line) using `sum`

( `total`

) operator.

```
Line 1: $10
Line 2: $15
Result: sum
```

You can calculate an average of all lines above (until empty line) using `average`

( `avg`

) operator.

```
Line 1: $10
Line 2: $20
Result: average
```

You should be able to use any form of the units: short, long, abbreviation. If you can't use some form of unit, please, write us.

SI based units support all SI prefixes, both short and long form. Note that SI prefixes are case-sensitive. For example, use **MB** for megabytes, not mB:

```
1 mm
2 picometers
3 GB
```

To make time calculations more straightforward, 1 year is equal to 365 days, and 1 month equal to 1/12 of the year. In cases where results give non-integer value, round functions might be used to make an integer:

```
round(1 month in days)
```

Supported units: Second, minute, hour, day, week, month, year

Use `fromunix`

function to convert timestamp into dates:

```
fromunix(1446587186)
```

Kelvin, celsius, fahrenheit

Meter, mil, points, lines, inch, hand, foot, yard, rod, chain, furlong, mile, cable, nautical mile, league

Since **in** is used as a conversion operator, you cannot use it for inches.

Hectare, are, acre

It is possible to use all length units with `sqaure`

or `sq`

prefix

```
20 sq cm
30 square inches
11 sqm
```

Pint, quart, gallon, tea spoon, table spoon, cup

It is possible to use all length units with `cubic`

, `cu`

or `cb`

prefix

```
20 cu cm
30 cubic inches
11 cbm
```

Gram, tonne, carat, centner, pound, stone, ounce

Radian, degree

You can use both as text form of unit (radians, degrees) as sign. For example, 45 °

Bytes multiplies contain 1000 bytes. If you need 1024 multiplier, use kibibytes. Please note lowercase **b** is used for bits, and uppercase **B** for bytes.

Bit: b, bit, kb, kib, kilobits, mb, ... Byte: B, byte, kB, kiB, megabyte, ...

Use hash symbol at the beginning of the line to make a header:

```
# This is header
```

If you want to comment part of the line, use double quotes:

```
$275 for the "Model 227"
```

To comment all line, use double slash:

```
// This is comment
```

Use colon to make a label (label will not be evaluated):

```
Price: $11 + $34.45
```

Surround with parentheses | ⇧⌘0 |

Copy result on current line | ⇧⌘C |

Select all | ⌘A |

Delete all | ⎇⌘⌫ |

Copy all | ⎇⌘C |

Import | ⌘O |

Export | ⌘S |

⌘P |

Numi does not modify imported files until you explicitly export them. All exported files have .numi extension. You can open .numi files with any text editor since Numi uses plain text and UTF-8 encoding to store files.

Numi uses crowdsource model for translation. That means anyone can participate in translation process.

- Sign up on the One Sky translation service
- Take a look at current state of translation for your language. Can't find it there? Contact us
- Start translating. You can filter for all untranslated phrases in interface, for example.

If download will not start automatically click here.

Type your email here if you want to get notified when we finally polish and release Numi for Mac.