Napkin Math
Quick estimation with human-readable rounding using ‘as napkin’.
From testdata/eval/success/features/napkin.cm.
Basic Numbers #
as napkin rounds to 2 significant figures and adds human-readable suffixes.
small_num = 47 as napkin
medium_num = 8734 as napkinResults
| small_num = 47 as napkin | → | 47 |
| medium_num = 8734 as napkin | → | 8.7K |
Thousands #
thousands = 347234 as napkin
twelve_k = 12500 as napkinResults
| thousands = 347234 as napkin | → | 350K |
| twelve_k = 12500 as napkin | → | 13K |
Millions #
million = 1234567 as napkin
two_million = 2347000 as napkinResults
| million = 1234567 as napkin | → | 1.2M |
| two_million = 2347000 as napkin | → | 2.3M |
Billions #
billion = 1500000000 as napkin
five_b = 5000000000 as napkinResults
| billion = 1500000000 as napkin | → | 1.5B |
| five_b = 5000000000 as napkin | → | 5B |
Trillions #
trillion = 1234000000000 as napkinResults
| trillion = 1234000000000 as napkin | → | 1.2T |
Negative Numbers #
neg_million = -1234567 as napkin
neg_thousand = -8734 as napkinResults
| neg_million = -1234567 as napkin | → | -1.2M |
| neg_thousand = -8734 as napkin | → | -8.7K |
With Quantities #
bandwidth = (100 MB/s * 3600) as napkin
storage = (10 TB + 5 TB) as napkinResults
| bandwidth = (100 MB/s * 3600) as napkin | → | 352 GB/s |
| storage = (10 TB + 5 TB) as napkin | → | ~15 TB |
In Calculations #
load = 10000 req/s as napkin
capacity = 450 req/s as napkinResults
| load = 10000 req/s as napkin | → | 10K req/s |
| capacity = 450 req/s as napkin | → | 450 req/s |
What This Demonstrates #
as napkinrounds to 2 significant figures- Human-readable suffixes: K, M, B, T
- Works with negative numbers
- Works with unit quantities and rates
- Useful for quick estimation and back-of-envelope calculations