Кто-нибудь знает библиотеку для работы с парами количество/единица измерения?
Вопрос
Я хотел бы иметь возможность делать такие вещи, как
var m1 = new UnitOfMeasureQuantityPair(123.00, UnitOfMeasure.Pounds);
var m2 = new UnitOfMeasureQuantityPair(123.00, UnitOfMeasure.Liters);
m1.ToKilograms();
m2.ToPounds(new Density(7.0, DensityType.PoundsPerGallon);
Если чего-то подобного еще нет, кто-нибудь заинтересован в том, чтобы сделать это как проект ОС?
Решение
Проверьте Библиотека преобразования единиц измерения в проекте «Код».
Другие советы
На самом деле мы построили один дома, где я работаю.К сожалению, он недоступен для публики.
На самом деле это отличный проект, над которым можно работать, и сделать его не так уж сложно.Если вы планируете сделать что-то самостоятельно, я предлагаю вам прочитать о Количество, Измерение и Единица (фундаментальные единицы).
Это помогло нам четко понять суть проблемы и очень помогло при разработке библиотеки.
В Глава 10.Шаблон количественного архетипа книги Корпоративные шаблоны и MDA:Создание лучшего программного обеспечения с помощью шаблонов архетипов и UML Джим Арлоу и Ила Нойустадт существует действительно полезное обсуждение этой темы и некоторых общих шаблонов, которые вы могли бы использовать в качестве руководства.
Также см. самую последнюю версию F# — в ней есть статический анализ области/размерностей измерений.
Есть (старая) статья КодПроект.Раньше я использовал его в производственной среде, и он работал отлично.У нас были некоторые незначительные проблемы (среди прочего, производительность), которые я решил.Я поместил все это в библиотеку, которую вы можете найти здесь.
Отказ от ответственности: Я являюсь сопровождающим этого проекта, поэтому это можно рассматривать как бесстыдную вилку.Однако библиотека бесплатна (как в пиве, так и в речи).
Он включает в себя единицы СИ, но также позволяет создавать новые единицы и преобразования.
Так вы можете, например, создать отряд «XP» (очки опыта).Затем можно зарегистрировать преобразование в «м» (метр, смысла нет, но можно).Вы также можете создать сумму, например 3 XP/мин (3 очка опыта в минуту).Я считаю, что он предлагает достойные настройки по умолчанию, сохраняя при этом гибкость.
Юникс единицы по моему мнению, блестяще;источник должен быть где-то в сети.
(В разделе «Ошибки» в исходном документе говорилось: «Не основывайте свои финансовые планы на конвертации валют».)