Сами единицы определены в Брошюра СИи двоичные префиксы, вызывающие этот конкретный аргумент - киби, меби, гиби - в МЭК 80000-13, йо-
Я однажды отправил ошибку, вызванную 24 байтами. Проверка квоты хранилища в приложении Laravel сравнивала размер загруженного файла с пределом, который команда-продукт написала в виде "500 МБ". Разрыв между ними составляет около 4,6%, что невидимо в тестировании и очень заметно, когда экспортный 512 000 000 байтов экспортируется как «слишком большой», а пользовательский интерфейс настаивает на том, что он находится ниже.
Преобразование единиц выглядит самой скучной проблемой в вычислениях вплоть до тех пор, пока она что-то молча не испортит. Каждое преобразование имеет точный определенный коэффициент - один дюйм есть точно 0,0254 метра, один фунт точно 0,45359237 килограммов - и причина, по которой мы ошибаемся, заключается в том, что вместо этого мы носим округленные приближения. Поэтому я построил единица измерения на [Toolz.dev](/вокруг определенных значений, охватывающих одиннадцать категорий, к которым я действительно обращаюсь, включая те, которые игнорируют большинство преобразователей: пиксели CSS, типографские точки и двоично-десятичные единицы данных, которые вызвали мою ошибку.
TL;DR: Каждая единица в категории является фиксированным кратным одной базовой единицы, поэтому преобразование является одним умножением и разделением - кроме температуры, которая нуждается в аффинном преобразовании, поскольку Цельсий, Фаренгейт, Кельвин и Рэнкин имеют разные нулевые точки The единица измерения Покрывает длину, вес, температуру, площадь, объем, скорость, время, данные, давление, энергию и угол с помощью точных стандартных коэффициентов, показывает вашу ценность в каждом блоке сразу и полностью работает в вашем браузере.
Как на самом деле работает преобразование единиц?
Выберите одну базовую единицу в каждой категории. Выражайте все остальные единицы как соотношение к нему. Затем преобразование сводится к одной строке арифметики:
result = value × (fromUnit.ratio / toUnit.ratio)
Для длины базой является метр. Сантиметр имеет отношение 0,01, дюйм - 0,0254. Преобразование 30 см в дюймы 30 × 0.01 / 0.0254 = 11.811, йо- Это весь алгоритм, и он имеет полезное свойство: поскольку каждое преобразование проходит через базовую единицу, вы никогда не цепите приближения. Преобразование миль в морские мили проводится в милю → метр → морская миля в одном выражении, а не через таблицу справочных данных попарных факторов, каждая со своим округлением.
базовые единицы в единица измерения Существуют те, где они существуют: метр, килограмм, второй, Паскаль, Джоуль, Радиан, квадратный метр, метр в секунду. Volume использует литр, а данные используют байт, как для читабельности, а не для строгой чистоты SI.
Температура - это исключение, которое ломает модель, и стоит понять, почему.
Почему температура отличается от всех остальных?
Поскольку шкалы температуры аффинный, не пропорциональный. Ноль сантиметров и ноль дюймов - это одинаковая длина - ничего. но ноль Цельсия и ноль Фаренгейта - это не одинаковая температура, и ни один из них не является & quot; вообще нет температуры. & quot; весы имеют как разный размер шага, так и разное происхождение.
Таким образом, преобразование температуры требует двух операций, а не одной: сдвигать начало, затем масштабировать. Стандартные формулы:
- °F = (°C × 9/5) + 32
- °C = (°F − 32) × 5/9
- k = °С + 273,15
- °R = K × 9/5
Внутри конвертер маршрутизирует все через Кельвина, который является единственным из четырех с физически значимым нулем - абсолютным нулем, точкой, где тепловое движение прекращается. Это также дает бесплатную проверку достоверности: если преобразование дает отрицательное значение Кельвина, вход был ниже абсолютного нуля и не является реальной температурой. Инструмент отклоняет его с объяснением, а не с уверенностью возвращает чепуху, которая является своего рода небольшой честностью, которая отделяет инструмент, которому вы можете доверять, от инструмента, который вам придется перепроверить.
Краткое справочное обращение к числам, которые люди на самом деле ищут:
| градус Цельсия | фаренгейт | варвар | Что это такое |
|---|---|---|---|
| −273,15 °C | −459,67 ° F | 0 к | абсолютный |
| -40 °С | −40 °F | 233,15 тыс. | где две шкалы пересекаются |
| 0 °С | 32 ° F | 273,15 К | вода замерзает |
| 20 °С | 68 ° F | 293,15 тыс. | комнатная температура |
| 37 °C | 98,6 ° F | 310,15 К | человеческое тело |
| 100 °C | 212 °F | 373,15 К | Вода кипит на уровне моря |
Кроссовер −40 — это то, что стоит запомнить. Это единственный момент, с которым Сельсий и Фаренгейт согласны, и это хорошая проверка здравомыслия в любой процедуре преобразования, которую вы пишете.
В чем разница между MB и MIB?
Это конверсия, которая стоит реальных денег и реальных часов охоты на жуков, поэтому она заслуживает собственного раздела.
равняется Мегабайт (МБ) составляет 1 000 000 байт - десятичная единица, 106. А Мебибайт (MIB) составляет 1 048 576 байт - двоичная единица, 2²0. двоичные префиксы (киби, меби, гиби, теби) были стандартизированы IEC в 1998 году именно для того, чтобы положить конец двусмысленности, и примерно половина отрасли проигнорировала их.
В результате получается беспорядок, который все чувствовали:
| рекламируемый | Фактические байты | Что показывает ОС | кажущаяся «потеря»; |
|---|---|---|---|
| 1 кБ | 1000 | 0,98 китайца | 2,4% |
| 1 МБ | 1 000 000 | 0,95 мб | 4,6% |
| 1 ГБ | 1 000 000 000 | 0,93 ГБ | 7,4% |
| 1 ТБ | 1 000 000 000 000 | 0,91 Тиб | 9,9% |
Производители дисков продают в десятичных единицах, потому что десятичное число делает число больше. Windows сообщает в двоичных единицах, но помечает их & quot;GB, & quot; где & quot; мой диск емкостью 1 ТБ имеет только 931 ГБ & quot; жалоба приходит из - ничего не пропало, метка просто неправильная. macOS и большинство инструментов Linux теперь честно сообщают десятичные ГБ. ОЗУ всегда двоичная, потому что адресация памяти по своей сути является степенью двойки. Скорость сети десятичная а Измеряется в битах, что является третьей осью путаницы: соединение "100 Мбит/с" обеспечивает около 12,5 Мб в секунду, а не 100.
Практические правила, которые я следую:
- В коде работайте в байт, йо- Преобразование только на дисплее.
- Когда вы пишете лимит в спецификации, напишите количество байтов в скобках: "500 МБ (500 000 000 байт).
- Если в вашем контракте API написано MB, выберите Decimal, потому что именно это метка означает вне Windows.
- Никогда не думайте, что другая система согласуется с вашей. проверка
выше единица измерения Перечисляет оба семейства рядом в категории данных, поэтому вы можете видеть пробел, а не догадываться об этом. Если вы работаете с необработанными значениями байтов и хотите видеть их на уровне битов, бинарный переводчик является сопутствующим инструментом.
Какие конверсии действительно нужны людям?
После просмотра того, что ищут и что я достигаю для себя, список короткий и предсказуемый. Вот те, которые стоит знать холод, с точными факторами, а не приближениями:
| переделка | точный фактор | Быстрая ментальная математика |
|---|---|---|
| см → в | ÷ 2,54 | Уменьшите его вдвое, затем вычтем 20% |
| в → см | × 2,54 | удвоить, добавить 25% |
| км → ми | × 0,621371 | Умножьте на 0,6, добавьте немного |
| Ми → Км | × 1,609344 | добавить 60% |
| кг → фунт | × 2.20462262 | удвоить, добавить 10% |
| фунт → кг | × 0,45359237 | Уменьшите его, вычтем 10% |
| °C → °F | × 1,8 + 32 | удвоить, добавить 30 (грубо) |
| км/ч → м/час | × 0,621371 | Тот же фактор, что и km → mi |
| л → US GAL | ÷ 3.785411784 | Разделить на 4, добавить немного |
| МБ → MIB | ÷ 1.048576 | вычесть около 4,6% |
Колонка ментальной математики намеренно груба - достаточно хороша, чтобы проверить здравомыслие, не достаточно хороша для отправки. Различие имеет значение: " удвоить и добавить 10%" превращает 70 кг в 154 фунта, что правильно с точностью до грамма. Но применительно к партии весом 2000 кг она дрейфует, и применительно к расчету дозировки это неприемлемо. Используйте эвристику, чтобы поймать неправильный порядок величины; используйте точный коэффициент для фактического ответа.
Являются ли эти коэффициенты точности точными или округленными?
точно, и это более интересный факт, чем кажется.
После международного соглашения ярдов и фунтов 1959 года имперские подразделения определенный в пересчете на метрические. дюйм не измеряется против метра, заявлено, что он составляет ровно 0,0254 м. Фунт составляет ровно 0,45359237 кг. галлон США составляет ровно 3,785411784 л. Экспериментальной неопределенности в этих цифрах нет - это определения, как и то, что в минуте 60 секунд.
То же самое и в категориях:
- 1 акр = 4046,8564224 м² (точно)
- 1 фунт/кв. = 6894.757293168 Па (точно, следуя фунту и дюйму)
- 1 BTU = 1055.05585262 J (определение международного таблицы)
- 1 кВтч = 3 600 000 Дж (точно, поскольку ватт — это джоуль в секунду)
- 1 морская миля = 1852 м (точно, по международному соглашению в 1929 г.)
Несколько единиц действительно являются условностями, а не определениями, и честные инструменты говорят так. "Month" не является фиксированным количеством - конвертер использует 30 дней, потому что вы должны выбрать что-то, и "year" из 365 дней игнорирует високосные годы. Mach зависит от температуры воздуха и давления; конвертер использует показатель уровня моря около 343 м/с при 20 °C. Если вам нужна точная арифметика даты вместо номинального коэффициента, используйте Калькулятор разницы дат, который подсчитывает фактические календарные дни, а не умножает на 30.
выше единица измерения сохраняет заданные значения и округляет только показ, до восьми значащих цифр. Сама арифметика выполняется с полной двойной точностью, поэтому цепные преобразования не накапливают видимую ошибку.
Могу ли я преобразовать пиксели CSS в миллиметры?
Да, и это одно из конверсий, которые я использую чаще всего как фронтенд-разработчик, поэтому он находится в категории длины вместе с физическими единицами.
Спецификация CSS определяет эталонный пиксель как 1/96 дюйма. что делает 96 px ровно 25,4 мм, или 1 px ≈ 0,2646 мм. это также означает, что связь между px и pt (типографская точка, 1/72 дюйма) фиксирована: 1 pt = 1,333... px, и 12 pt = 16 px, поэтому 16px является размером шрифта тела по умолчанию в каждом браузере - это 12-точечный текст.
Предостережение, которое стоит прямо сказать: это ссылка пиксель, а не пиксель устройства. На дисплее с высоким разрешением один пиксель CSS отображает два или три физических пикселя. На телефоне масштабирование в видеконтуров снова меняет отношения. Таким образом, PX → MM точно правильно, когда вы сопоставляете дизайн печати с веб-страницей (страница A4 имеет ширину 210 мм, что составляет 793,7 CSS PX), и это полезная аппроксимация, а не физическая истина, когда вы говорите о том, что ваш глаз на самом деле видит на экране Retina.
Если вы строите макеты и токены дизайна, это преобразование плюс палитра Охватывает большую часть перевода между проектами, ориентированными на печатную печать, и реализацией CSS.
Общие варианты использования
Разработка и DevOps. Ограничения на размер файла, квоты хранилища, размеры кэша, бюджеты пропускной способности. Различие в MB/MIB — это то, что кусается, и он кусается в местах, где неправильный номер молча отклоняет действительный запрос вместо того, чтобы выдавать ошибку, которую вы заметите.
Фронд-энд и дизайн-проектирование. PX, PT, MM и дюймы, когда дизайн поставляется из инструмента, ориентированного на печать, или когда вы создаете что-то, что будет просматривать и печатать.
приготовление пищи и рецепты. Чашки, столовые ложки и унции США по сравнению с граммами и миллилитрами. Обратите внимание, что преобразования объема здесь являются традиционными для США: имперская пинта и галлон являются отдельными записями, потому что пинта в Великобритании составляет 568 мл, а пинта в США - 473 мл, разница в 20%, которая испортила много тортов.
путешествия и повседневная жизнь. км до миль, кг в фунты, градусы Цельсия в Фаренгейт, литры в галлоны. Негласное большинство трафика unit-converter и причина, по которой инструмент по умолчанию имеет толковую пару для каждой категории, а не заставляет вас настраивать его.
Наука и инженерия. Давление в пси, бар и паскали; энергия в джоулах, калориях, кВтч и БТЕ; углы в градусах, радианах и градианах. Везде, где вы перемещаетесь между бумагой SI и Imperial Datasheet.
Фитнес и питание. Килокалории (калорийность) на этикетке на пищевых продуктах на самом деле килокалория джоулей, килограммов в фунты и камни, километров в мили для расчета темпа. Если вы преобразуете проценты ежедневной цели, а не единицы, калькулятор процента это вторая половина этого рабочего процесса.
Для более широкого взгляда на то, какие утилиты на основе браузера стоит держать в пределах досягаемости, я собрал те, которые я ежедневно использую в Набор инструментов для веб-разработчика, йо-
Почему важен конвертер на основе браузера?
Для конвертера единиц аргумент конфиденциальности слабее, чем, скажем, для PDF-инструмента - никто не собирается вас компрометировать, узнав, что вы конвертировали 30 см в дюймы. Но две вещи по-прежнему делают выполнение на стороне клиента правильной архитектурой.
Первая — скорость. Нет поездки туда и обратно. Результат обновляется при каждом нажатии клавиш, потому что арифметика происходит в нескольких микросекундах, а не по сети. Конвертер с поддержкой сервера, который отбивает ваш вход и показывает, что спиннер работает медленнее, чем умножение в вашей голове.
Во-вторых, он продолжает работать, когда ничего больше не работает. Загрузите страницу один раз, и она выйдет в автономном режиме - в самолете, в поезде, в центре обработки данных без гостевого Wi-Fi, в конференц-зале, сеть которого вас ненавидит. Каждый инструмент на [Toolz.dev](/создан специально, и обоснование этого выбора - для инструментов, которые действительно защищают вас - изложено в Почему ваши данные никогда не должны покидать ваш браузер, йо-
часто задаваемые вопросы
Как перевести см в дюймы?
Разделите количество сантиметров на 2,54, потому что один дюйм определяется как ровно 2,54 см. Так 30 см ÷ 2,54 = 11,811 дюйма, а 100 см ÷ 2,54 = 39,37 дюйма. Отношения — это скорее определение, а не измерение, установленное международным соглашением ярдов и фунтов 1959 года, поэтому оно скорее точно, чем приблизительно.
Как перевести кг в фунты?
Умножьте килограммы на 2,20462262, так как один фунт определяется как ровно 0,45359237 кг. Это делает 70 кг равными 154,32 фунта. Мысленный ярлык - удвоить его и добавить 10% - дает вам долю фунта и подходит для проверки вменяемости, но используйте точный коэффициент для всего, что должно быть правильным, например, веса доставки или расчеты дозировки.
Какова формула преобразования Цельсия в Фаренгейт?
°F = (°C × 9/5) + 32. Таким образом, 25 ° C составляет 77 ° F, 100 ° C - 212 ° F. Чтобы обратить вспять: °C = (°F - 32) × 5/9. Температура требует как умножения, так и смещения, потому что две шкалы имеют разные точки нуля, в отличие от длины или веса, где достаточно одного множителя.
В чем разница между MB и MIB?
Мегабайт (МБ) составляет 1 000 000 байт, а мебибайт (МиБ) - 1 048 576 байт, или 1024². Разрыв составляет около 4,6%, и он растет с каждым шагом вверх: гигабайт и гибибайт отличаются на 7,4%. Производители дисков размещают рекламу в десятичных МБ и ГБ, а Windows сообщает в двоичных единицах, но помечает их ГБ, поэтому диск емкостью 1 ТБ выглядит примерно как 931 ГБ. Ничего не хватает - две системы просто считают по-разному.
Сколько километров в миле?
Одна миля составляет ровно 1,609344 километра, поэтому один километр составляет около 0,621371 мили. 5 км пробега составляет 3,107 мили, 10 км - 6,214 мили, марафон на 42,195 км - 26,219 мили. Один и тот же коэффициент 0,621371 преобразует км/ч в м/ч, так как оба имеют одинаковое отношение к расстоянию в час.
Являются ли коэффициенты пересчета точными или приблизительными?
Это точные определенные значения международных стандартов: 1 дюйм = 0,0254 м, 1 фунт = 0,45359237 кг, 1 галлона США = 3,785411784 л, 1 морская миля = 1852 м. Только отображаемый результат округляется до восьми значащих цифр, что сохраняет вывод читаемым без внесения ошибки, которую вы когда-либо заметили. Несколько действительно обычных единиц - "month" по состоянию на 30 дней Маха на уровне моря - помечены как таковые.
Могу ли я преобразовать пиксели CSS в миллиметры?
да. Спецификация CSS определяет опорный пиксель как 1/96 дюйма, что составляет 96 пикселей ровно 25,4 мм. Эти отношения — то, что вам нужно при сопоставлении дизайна печати с веб-макетом, и поэтому 12 pt равняется 16 пикселям. Имейте в виду, что он описывает эталонный пиксель CSS, а не физические пиксели на экране с высоким разрешением, где один пиксель CSS может покрывать два или три пикселя устройства.
Мои данные отправляются на сервер при конвертации единиц?
нет , йо- Каждое преобразование вычисляется в JavaScript в вашем браузере, поэтому результат обновляется мгновенно по мере ввода, а не после обхода сети. Ничто из того, что вы вводите, не передается, регистрируется или сохраняется, и после загрузки страницы конвертер продолжает работать без сетевого подключения.



