Результаты: отображение и точность
Здесь объясняется отображение результата рядом со строкой: десятичные знаки, сокращение больших чисел, округление денег, форматы значений и точность внутренних чисел. Читайте по порядку или переходите к нужной таблице. Ограничения одного вычисления перечислены ближе к концу.
Хранимые значения и отображаемые ответы
Каждая строка обрабатывается в два этапа. Сначала выполняется вычисление с сохранением полного значения. Затем результат форматируется для чтения, иногда с округлением. Такое округление меняет только отображение.
Следующая строка, использующая имя, получает полное значение, а не округлённые цифры:
share = 250 / 3 даёт 83.3333333333share * 3 даёт 250Если переписать отображаемые цифры в новую строку вручную, получится округлённое число. Для полной точности используйте имя.
Знаки после запятой
Результаты показывают до десяти десятичных знаков с округлением последнего. Конечные нули опускаются: 0.75, а не 0.7500000000.
2 / 3 даёт 0.66666666671 / 8 даёт 0.125Исключение — значащие цифры: требуемый конечный ноль сохраняется, чтобы не занизить заявленную точность. Поэтому 31.0357 m to 3 sf даёт 31.0 m, а 31.0357 m to 1 dp — 31 m.
Переводы через плотность ингредиента показывают до девяти значащих цифр — точность самой плотности. Например, 1 cup milk in g выводит 242.739531 g. Для основных продуктов выпечки хранятся веса чашки: 1 cup flour in g даёт ровно 125 g. Внутреннее значение сохраняет все цифры.
Число десятичных знаков по умолчанию меняется в настройках вычислений в пределах 0–15. Для отдельной строки используйте формат результата в её контекстном меню. Оба способа меняют только отображение.
Чтобы округлить само значение, напишите to 2 dp. Следующие строки получат округлённый результат. Половины округляются от нуля: 2.345 to 2 dp равно 2.35, а round(-2.5) — -3.
exact = 2 / 3 даёт 0.6666666667approx = 2 / 3 to 2 dp даёт 0.67exact * 3 даёт 2approx * 3 даёт 2.01Другие способы описаны в разделе Округление.
Денежные суммы
Деньги следуют правилам валюты, а не общему пределу в десять знаков:
- Точность валюты. Обычно два знака; у иены — ни одного, у кувейтского динара — три. Полный список — в справочнике валют.
- Конечные нули сохраняются.
$15выводится как$15.00. - Малые положительные суммы сохраняют цифры. Значение меньше цента, например
$0.004, не превращается в$0.00. - Цены за единицу сохраняют до четырёх десятичных знаков исходной записи:
£0.075/kWhи£1.499/Lпоказываются полностью. То же для пенсов и центов:6.2pвыводится как£0.062, а24.5p/kWh— как£0.245/kWh. Итоговая стоимость округляется до пенса:148.9p/L * 45 Lравно£67.01. При большем числе знаков цена меньше £1 выводится с четырьмя значащими цифрами (£0.12345/kWhкак£0.1235/kWh), а другие цены, например£8/kg / 3, — до пенса. - Криптовалюты показывают до десяти десятичных знаков, как числа без единиц.
Присваивание суммы имени отображается как обычная денежная строка. Имя сохраняет полное значение, поэтому последующие вычисления не теряют точность из-за отображения.
£250 / 3 даёт £83.33bill = £250 / 3 даёт £83.33bill * 3 даёт £250.00¥1,250 / 4 даёт ¥313£0.075/kWh даёт £0.075/kWh£8/kg / 3 даёт £2.67/kgВ настройках валют можно выключить округление до точности валюты, показывать коды вместо символов (15.00 USD вместо $15.00) или убирать конечные нули ($15 вместо $15.00).
Большие и малые числа
Начиная со 100 000 числа без единиц сокращаются: k — тысячи, M — миллионы, G — миллиарды, T — триллионы, P — квадриллионы. Очень большие и очень малые числа переходят в научную запись.
Деньги меньше миллиона показываются полностью до мелкой денежной единицы: £199,999.98 остаётся £199,999.98. От миллиона суммы тоже сокращаются, но миллиарды обозначаются B, а не G, и выводится до трёх десятичных знаков.
| Величина | Число без единиц | Денежная сумма |
|---|---|---|
| меньше 100 000 | 99,999 |
$99,999.99 |
| от 100 000 | 250k, 123.456k |
$150,000.00 |
| от 1 000 000 | 1.5M, 1.234567M |
$2.5M |
| от 10⁹ | 8.1G, 1.23456789G |
$1.235B |
| от 10¹² | 2T |
$2T |
| от 10¹⁵ | 100P |
$100P |
| больше 10¹⁷ | 1e18, 6.02e23 |
$1e18 |
| меньше 0,000001, но не ноль | 1e-7, 5e-11 |
250000 даёт 250k£99,999.99 * 2 даёт £199,999.98$1234567.89 даёт $1.235M8,100,000,000 даёт 8.1G$1,234,567,890 даёт $1.235B0.0000001 даёт 1e-7Буква меняет только отображение. 1.5 million хранится как 1 500 000 и выводится 1.5M; 3bn выводится 3G. Ниже 100 000 используются разделители тысяч (99,999).
Число с единицей записывается полностью, чтобы буква не выглядела приставкой: 175,200 Wh иначе можно было бы принять за киловатт-часы. Научная запись включается только выше 10¹⁷ или ниже 0,000001.
175200 Wh даёт 175,200 Wh1 light year in km даёт 9,460,730,472,580.8 kmВ настройках можно отключить сокращения, чтобы видеть полные числа, либо отключить разделители тысяч.
Виды ответов
У каждого типа значения свой формат. В таблице приведено по одному-два примера.
| Вид | Что вы пишете | Ответ |
|---|---|---|
| Число | 1,000 + 10 |
1,010 |
| Денежная сумма | $100 + 15%, 50 CHF |
$115.00, CHF 50.00 |
| Величина | 65 kg in lb, 12 kg / 4 m² |
143.3004704202 lb, 3 kg/m² |
| Величина в двух единицах | 180 cm in feet and inches |
5 feet 10.87 inches |
| Число пикселей | 420 mm in px at 300 dpi |
4,961 px |
| Диапазон | 2-3 kg, 5-10% of £200 |
2 - 3 kg, £10.00 - £20.00 |
| Процент | 15 / 60 as % |
25% |
| Множитель | £60 / £40 as x |
1.5x |
| Дробь | 0.75 as fraction, 22/7 as fraction |
¾, 3 1/7 |
| Научная запись | 12345.6789 in sci |
1.23456789e4 |
| Шестнадцатеричная, двоичная, восьмеричная запись | 255 in hex, 255 in binary, 255 in octal |
0xFF, 0b11111111, 0o377 |
| Истина или ложь | £45 > £40 |
true |
| Дата | March 12 2024 + 3 days |
March 15, 2024 |
| Время суток | 12:30 PM, 1:00:30 |
12:30 PM, 01:00:30 |
| Длительность | 9:30 to noon, 30 min - 2 hours |
2 hours 30 min, -(1 hour 30 min) |
| Диапазон дат | Q1 2025 |
Jan 1 – Mar 31, 2025 |
| Таймкод | 48 frames @ 24 fps |
00:00:02:00 |
| Время круга | 1:23:45.67 |
01:23:45.67 |
| Темп | 5 km in 26:45 |
05:21/km |
| Градусы, минуты, секунды | 45.5 degrees as DMS |
45° 30′ 0″ |
| Часы, минуты, секунды | 1.5 hours as HMS |
1h 30m 0s |
| Высота музыкального тона | 440 Hz to pitch |
A4 |
| Список | [1, 2+3, 4*2] |
[1, 5, 8] |
| Матрица | identity(2) |
[[1, 0], [0, 1]] |
| Комплексное число | 3 * (2 + 3i), conj(-1 + i) |
6 + 9i, -1 - i |
| Текст | weekday on March 12 2024, differentiate(x^3, x) |
Tuesday, (3*(x^(3-1))) |
У некоторых единиц есть особенности. Чашки и пинты используют множественное число: 2.5 cups, 2 pints. В двухкомпонентном результате меньшая часть выводится с двумя знаками, например 5 feet 10.87 inches, но длительности и стоуны с фунтами округляются до целой меньшей единицы. Пиксели выводятся с разделителями тысяч и пробелом перед px.
500 g sugar in cups даёт 2.5 cups82 kg in stones and pounds даёт 12 st 13 lb89.9 min in hours and minutes даёт 1 hour 30 min6000 px * 4000 px даёт 24,000,000 pxНекоторые форматы зависят от сегодняшней даты. Для текущего года год опускается, а близкие даты могут выводиться относительным словом:
March 12 даёт March 12tomorrow at 1am даёт Tomorrow at 1:00 AMЕщё два состояния результата:
- Нет ни результата, ни ошибки — строке нечего показать: это комментарий, пустая строка, определение функции или незавершённая запись вроде
total =. pending…означает ожидание ещё недоступных данных.
Точность ответов
Точная арифметика
Целые числа, десятичные и обыкновенные дроби хранятся точно. Сложение, вычитание, умножение, деление и целые степени сохраняют точность, включая дроби вроде ⅓ без конечной десятичной записи. Оператор == сравнивает точные значения без округления.
0.1 + 0.2 == 0.3 даёт true1/3 + 1/3 + 1/3 == 1 даёт trueКвадратный корень точен, если допускает точное представление; иначе сохраняется 38 значащих цифр с отсечением, не округлением. Стандартное отклонение использует тот же корень. Функции gcd и lcm точны, неотрицательны и работают с дробями без предварительного округления.
sqrt(2.25) даёт 1.5sqrt(1e-64) даёт 1e-32gcd(12, 18) даёт 6Приближённые результаты
Некоторые операции используют двоичные числа с плавающей точкой и ограниченной точностью:
- тригонометрия, логарифмы и экспоненты
- нецелые степени вроде
2^0.5и научная запись с дробным показателем, например1e2.5 - некоторые переводы единиц
- численное решение уравнений, производные и интегралы
- матричные разложения и собственные значения
- функции комплексных чисел за пределами простой арифметики
Поскольку == сравнивает точные значения, два приближённых результата могут выглядеть одинаково, но различаться. Сравнивайте их разность с небольшим допуском:
sqrt(2)^2 даёт 2sqrt(2)^2 == 2 даёт falseabs(sqrt(2)^2 - 2) < 0.000000001 даёт trueВыбирайте допуск с учётом масштаба чисел. Десять отображаемых знаков не гарантируют десять верных знаков, особенно в сложных численных задачах.
В списках, матрицах и комплексных числах часть на уровне погрешности округления, намного меньшая соседних значений, выводится как 0. Так результаты разложения матрицы или exp(i * pi) остаются читаемыми. Внутреннее значение сохраняет цифры, поэтому при сравнении тоже нужен допуск:
exp(i * pi) даёт -1abs(exp(i * pi) + 1) < 0.000000001 даёт trueРазмер чисел
- Десятичные числа хранятся как целое до 2¹²⁸−1 (около 38 цифр), умноженное на степень десяти от 10⁻¹²⁸ до 10¹²⁷. Значения больше
1e127тоже работают, пока цифры помещаются в представление. - Дроби допускают числитель и знаменатель до 4 096 бит каждый.
- При сложении очень малого с огромным малая часть может потеряться:
1e30 + 0.001показывает1e30. - Выход за диапазон при умножении или возведении в степень даёт
Error: ∞, если результат слишком велик или слишком мал. Переполнение не превращает его в произвольное неверное число.
1e30 + 0.001 даёт 1e301e100 * 1e100 даёт Error: ∞Ограничения
Каждая строка должна укладываться в ограничения. При превышении обычно появляется Error: calculation limit только в этой строке; остальная заметка работает. Частичный или незавершённый результат не показывается как ответ. Уменьшите диапазон, матрицу, вложенность или размер задачи.
| Параметр | Ограничение |
|---|---|
| Одна строка | 64 КиБ текста либо 4 096 чисел, слов и символов |
Список или range |
1 024 элемента |
| Матрица | От 1 до 32 строк и столбцов; все строки одинаковой длины |
| Вложенные списки и вызовы встроенных функций | 16 уровней |
sum или product по диапазону |
10 000 членов |
| Расширенные вычисления | 100 000 шагов; вложенные операции используют общий лимит и поэтому исчерпывают его быстрее |
| Собственные функции | 32 параметра; глубина вызовов функций — до 16, всего до 16 384 вызовов и строк тела функций |
| Дроби | 4 096 бит в числителе или знаменателе |
| Символьная производная | 8 192 символа результата |
solve |
128 итераций |
integrate |
2 048 уточнений, 20 уровней разбиения |
Varlig Calc пока не поддерживает общую символьную алгебру, неопределённые интегралы, нелинейные системы, исторические цены криптовалют, запись бросков костей вроде 2d6, арифметику с неопределённостями вроде 10 ± 0.5 и цепочки сравнений вроде 1 < x < 5. Подробнее — Расширенная математика.
Всё вместе
Вот бюджет поездки, иллюстрирующий большинство правил этой страницы:
flights = £1,284.60 даёт £1,284.60hotel = £96.50 * 4 даёт £386.00total = flights + hotel даёт £1,670.60each = total / 3 даёт £556.87each * 3 даёт £1,670.60each / total as % даёт 33.3333333333%each / total as fraction даёт ⅓total to 0 dp даёт £1,671.00total * 1000 даёт £1.671M- Строка
each = total / 3показывает долю с округлением до пенсов, но имя хранит полное значение. - Выражение
each * 3использует полное значение и возвращает ровно £1 670,60, а не £1 670,61. - Процент — не деньги, поэтому показывается десять десятичных знаков. В виде дроби он точен.
- Форма
to 0 dpокругляет само значение; конечные нули сохраняются, потому что результат денежный. - Умножение на 1 000 превышает миллион, поэтому результат сокращается до
£1.671M.