¿Alguien conoce una biblioteca para trabajar con pares de cantidad/unidad de medida?

StackOverflow https://stackoverflow.com/questions/54043

  •  09-06-2019
  •  | 
  •  

Pregunta

Me gustaría poder hacer cosas como

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);

Si aún no existe algo como esto, ¿alguien está interesado en hacerlo como un proyecto de sistema operativo?

¿Fue útil?

Solución

Revisar la Biblioteca de conversión de unidades de medida en El Proyecto Código.

Otros consejos

De hecho, construimos uno internamente donde trabajo.Lamentablemente, no está disponible para el público.

En realidad, este es un gran proyecto en el que trabajar y no es tan difícil de realizar.Si planeas hacer algo por tu cuenta, te sugiero que leas sobre Cantidad, Dimensión y Unidad (unidades fundamentales).

Estos nos ayudaron a comprender claramente el dominio del problema y ayudaron mucho en el diseño de la biblioteca.

En Capítulo 10.Patrón de arquetipo de cantidad del libro Patrones empresariales y MDA:Creación de mejor software con patrones de arquetipos y UML Por Jim Arlow e Ila Neustadt hay una discusión realmente útil de este tema y algunos patrones generales que podría usar como guía.

Consulte también la versión más reciente de F#: tiene análisis de dimensión/dominio de medición estática.

Hay un artículo (antiguo) sobre Proyecto de código.Lo usé anteriormente en un entorno de producción y funcionó muy bien.Tuvimos algunos problemas menores (rendimiento, entre otros), que solucioné.Puse todo esto en una biblioteca que puedes encontrar. aquí.

Descargo de responsabilidad: Soy el mantenedor de este proyecto, por lo que esto podría concebirse como un complemento descarado.Sin embargo, la biblioteca es gratuita (como en la cerveza y en el habla).

Incluye las unidades SI, pero también permite crear nuevas unidades y conversiones.

Entonces puedes, por ejemplo, crear una unidad "XP" (puntos de experiencia).Luego puedes registrar una conversión a "m" (metro, no tiene sentido, pero puedes hacerlo).También puedes crear una cantidad como 3 XP/min (3 puntos de experiencia por minuto).Creo que ofrece valores predeterminados decentes, al tiempo que permite flexibilidad.

Unix unidades es en mi humilde opinión brillante;La fuente debe estar en algún lugar de la web.
(En "errores", el documento original decía "no base sus planes financieros en las conversiones de moneda").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top