Tinapps

Arithmetic that stays exact

Ten calculators for the arithmetic that spreadsheets get quietly wrong: percentages in every direction, dataset summaries with outliers named, base conversion and factorials on BigInt so nothing silently rounds, deterministic primality up to 10¹⁸, and every rounding rule compared side by side. Each one shows its working, and each one runs in your browser.

Popular workflows

  1. 01

    Check a reported change

    Work out what one figure is as a percentage of another, then reverse the question — the whole behind a known part, or the original price behind a discounted one — without re-deriving the formula each time.

  2. 02

    Summarise a set of readings

    Paste a column of numbers straight from a spreadsheet and read the mean, median, quartiles, and spread together, so a single extreme value cannot pass itself off as the typical case.

  3. 03

    Settle a rounding argument

    Put the disputed value in once and see half-up, banker's rounding, floor, ceiling, and truncation together — including where your language's own `toFixed` disagrees with all of them.

  4. 04

    Work with numbers too big to type

    Compute an exact factorial, convert a 64-bit identifier between bases, or test a 19-digit number for primality — all in exact integer arithmetic rather than in floating point.

What every tool here has in common

BigInt everywhere it counts

Factorials, base conversion, GCD/LCM, and primality run on arbitrary-precision integers. 50! is printed in full — all 65 digits — instead of collapsing into 3.04e64, and a 19-digit port or snowflake ID converts without losing its last digits.

Deterministic primality, not a guess

The prime checker uses Miller–Rabin with a witness set that is proven deterministic below 3.3 × 10²⁴, so a result for any input you can type is a proof, not a probability.

Every rounding rule at once

Rounding is where results diverge quietly between a spreadsheet, a database, and application code. Seeing all six rules on one screen is usually enough to explain a one-cent discrepancy in a report.

The working is shown

Euclidean reduction steps, prime factorisations, additive Roman breakdowns, and approximation error are printed alongside the answer — which is what makes these usable for teaching as well as checking.

Seeded and shareable

Inputs and settings travel in the URL, so a link reopens the same calculation. Random draws come from the browser's cryptographic RNG and record their run so a result can be quoted.

No spreadsheet required

Everything works from a pasted list, in the browser, with no account and no formula syntax to remember — including on a phone.

Every tool in this category

Questions, answered plainly

How do I calculate a percentage increase or decrease?

Enter the original and the new value; the tool reports the change in both directions and the multiplier. It also runs the reverse question — recovering the original figure from a result and a known percentage change — which is the step most people get wrong when removing a tax or a discount.

Why does 2.675 round to 2.67 in my code?

Because 2.675 cannot be represented exactly in binary floating point; the stored value is fractionally below it, so `toFixed(2)` rounds down. The rounding tool shows that case explicitly next to the decimal rules, which is usually the fastest way to explain a mismatched invoice total.

What is the difference between mean and median?

The mean adds every value and divides by the count, so one extreme reading drags it. The median is the middle value once the set is sorted and barely moves. When the two disagree sharply, the set is skewed — which is why both, plus the quartiles, are shown together.

How large a number can these tools handle?

Base conversion, GCD/LCM, and factorials are limited only by memory, because they use arbitrary-precision integers. Primality testing is deterministic to 10¹⁸ — comfortably past a 64-bit signed identifier.

Are the random numbers actually random?

They come from `crypto.getRandomValues`, the browser's cryptographic random source, rather than from `Math.random`. Draws can be made unique, sorted, and generated in bulk, with descriptive statistics for the run.

Is anything I enter sent anywhere?

No. All arithmetic happens in your browser, with no account and no server round-trip. The only thing that ever leaves is a link you choose to copy.

Every calculation runs locally in your browser. Numbers you enter are never uploaded, logged, or stored.

Other toolkits