(Предостережение: я не использовал единицы в гневе.)
Я думаю, что единственный минус для использования, например. FloatWithMeasure
- аспект приведения единиц (от единицы к единице). Я думаю, что это концептуально ортогонально аспекту преобразования числовых представлений (например, от int
до float
). Однако нет (я думаю) никакой библиотечной функции, которая бы выполняла приведение числовых представлений к единичным значениям. Возможно, это отражает тот факт, что большинство единичных значений моделируют непрерывные значения реального мира, так как такие дискретные представления, как int
, обычно для них не используются (например, 1<s>
кажется неправильным; конечно, вы имеете в виду 1.0<s>
).
Так что я думаю, что это нормально - «приводить представления», а затем «перенастраивать единицы измерения», но мне интересно, как вы получили значения с различными представлениями, во-первых, поскольку для этих представлений часто характерно фиксирование для домена ( например, используйте float
везде).
(В любом случае мне нравится ваша floatMeasure
функция, которая не смешивает аспект модуля с аспектом представления, так что если вам нужно только изменить представление, у вас есть способ выразить его напрямую .)