Привет.
Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.
как реализовать свой тип в котором будут мои ограничения на MaxValue
Здравствуйте, Аноним, Вы писали:
А>Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.
Что, и в
BigInteger не влазят?
Здравствуйте, koodeer, Вы писали:
K>Здравствуйте, Аноним, Вы писали:
А>>Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.
K>Что, и в BigInteger не влазят?
я понимаю что можно отмерять долго подбирая типы
это всё хорошо,но меня интересует техническая возможность
давай возьмем простой пример
dynamic a = double.MaxValue * 10 / 10;
a--;
после double.MaxValue * 10 ...значение уходит в Infinity
и потом что с ним не делай... / на теже или a--....
оно будет равно Infinity.
Здравствуйте, codenet, Вы писали:
C>я понимаю что можно отмерять долго подбирая типы это всё хорошо,но меня интересует техническая возможность
Тип BigInteger является постоянным типом, который представляет сколь угодно большое целое число, значение которого теоретически не имеет верхнего или нижнего предела.
Здравствуйте, codenet, Вы писали:
C>C>dynamic a = double.MaxValue * 10 / 10;
C>a--;
C>
C>после double.MaxValue * 10 ...значение уходит в Infinity
C>и потом что с ним не делай... / на теже или a--....
C>оно будет равно Infinity.
Я правильно понимаю, что вас интересует запись литералов такого типа? Ведь описание типа — штука тривиальная, даже если бы не было BigInteger.
Тогда всё банально — в дотнете список типов литералов жёстко ограничен. Так что придётся конструировать значение руками из литералов известных типов:
var a = new MyBigType(double.MaxValue);
a *= 10;
a /= 10;
a--;