Когда я хочу изменить единицы измерения, я получаю коэффициент преобразования между двумя заданными единицами, а затем изменяю минимальное значение , Max и Data внутри класса, выполнив некоторую арифметическую операцию с коэффициентом преобразования.
Код: Выделить всё
Double ConversionFactor = GetConversionFactor(curUnits, newUnits);
Units = newUnits;
Min *= ConversionFactor;
Max *= ConversionFactor;
Data *= ConversionFactor;
Есть ли в C# способ определить, произойдет ли это переполнение как при переполнении, так и при опустошении?
Из того, что я могу сказать с помощью некоторых тестов, я думаю, мне просто нужно проверить, что результат операции не равен положительной или отрицательной бесконечности? Если да, то я могу просто вернуть значение либо MinValue, либо MaxValue.
А еще бонусный вопрос. В ходе тестирования я обнаружил, что если я создам Double max = Double.MaxValue и добавлю к нему что-нибудь маленькое, например 100. Значение не меняется.
Почему это? Существует ли какой-то порог между MaxValue и PositiveInfinity, потому что точность при этом очень низкая большая ценность?
Подробнее здесь: https://stackoverflow.com/questions/337 ... n-overflow