- Код: Выделить всё
type
TUnitValue = record
Value: float;
Unit: TBaseUnit;
end;
TBaseUnit = record // в системе СИ
L: TRational;
M: TRational;
....
J: : TRational;
end;
Следствие: сложение/умножение величин с размерностями возможны при по элементном равенстве "Unit". Умножение/Деление размерности производится поэлементно.
Реализуется перегрузка арифметический операций. Добавляются проводные величины из СИ или СГС (а также приставки(Мега, Кило и т.д.), при оформлении вывода значение Unit сравнивается со значением в базе и форматируется вывод.
Больше информации https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D0%B4%D1%83%D0%BD%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%86
А так же ГОСТ 8.147-2002 Государственная система обеспечения единства измерений. ЕДИНИЦЫ ВЕЛИЧИН
К сожалению мои исходники канули в бездну, но на сорсфордже можно найти много схожих реализаций и размерностей и рациональных чисел. Помниться, в JEDI есть что то подобное.