Введение

GNU Units — это кроссплатформенная компьютерная программа для преобразования единиц измерения физических величин. Она содержит базу данных единиц измерения, включая экзотические и исторические единицы. Это, например, позволяет преобразовывать скорости, заданные в фурлонгах в фортнайт, и давления, заданные в тоннах на акр. Выходные единицы проверяются на согласованность с входными, что позволяет верифицировать преобразование сложных выражений.

История

GNU Units был написан Адрианом Мариано как реализация утилиты units, поставляемой с операционной системой Unix. Изначально она распространялась под разрешительной лицензией. Вариант GNU распространяется под лицензией GPL, однако проект FreeBSD поддерживает свободную ветку units, существовавшую до изменения лицензии.

единицы (утилита Unix)

Оригинальная программа единиц была стандартной частью Unix с самых ранних версий Bell Laboratories. Исходный код версии, очень близкой к оригинальной, доступен в проекте Heirloom.

Другие варианты реализации

UDUNITS – аналогичная утилита, но с дополнительным интерфейсом программной библиотеки и возможностями преобразования дат. UDUNITS считается фактическим стандартом (de facto) для преобразования единиц измерения переменных в файлах netCDF.

История версий

Версия 2.19 GNU Units была выпущена 31 мая 2019 года, чтобы отразить новую редакцию СИ 2019 года. Версия 2.14, выпущенная 8 марта 2017 года, исправила несколько незначительных ошибок и улучшила поддержку сборки под Windows. Версия 2.10, выпущенная 26 марта 2014 года, добавила поддержку рациональных показателей степени, больших единицы, а также возможность сохранять интерактивную сессию в файл для записи выполненных преобразований. Начиная с версии 2.10, 32-битная бинарная сборка для Windows стала доступна на веб-странице проекта (32-битный порт Windows версии 1.87 был доступен с 2008 года в рамках проекта GnuWin32). Версия 2.02, выпущенная 11 июля 2013 года, добавила вывод чисел с плавающей точкой в шестнадцатеричном формате и две другие опции для упрощения изменения формата вывода. Версия 2.0, выпущенная 2 июля 2012 года, добавила возможность преобразования в суммы единиц, такие как часы и минуты или футы и дюймы. Кроме того, в этом выпуске была добавлена поддержка кодировки UTF-8. Была предусмотрена возможность определения единиц, специфичных для локали. Синтаксис определения нелинейных единиц был изменен и добавлены необязательные спецификации области определения и области значений. Изменены имена файлов данных стандартных и пользовательских единиц, а определения валют были помещены в отдельный файл данных; был добавлен скрипт на Python для обновления определений валют. История версий подробно описана в файле NEWS, включенном в исходный дистрибутив.

Использование

Устройства будут выводить результат преобразования в двух строках. Как правило, первая строка (умножение) представляет собой искомый результат, а вторая строка – то же преобразование, выраженное в виде деления. Устройства также могут использоваться в качестве универсального научного калькулятора, включающего в себя ряд встроенных математических функций, таких как sin, cos, atan, ln, exp и другие. Попытка преобразовать несовместимые типы измерений приведет к тому, что устройства выдадут сообщение об ошибке несовместимости и отобразят упрощенную форму каждого измерения.

Примеры

Примеры, приведенные ниже, демонстрируют результаты, полученные с помощью GNU units версии 2.10.