свой тип данных
От: Аноним  
Дата: 29.06.13 00:02
Оценка:
Привет.
Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.
как реализовать свой тип в котором будут мои ограничения на MaxValue
Re: свой тип данных
От: koodeer  
Дата: 29.06.13 01:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.


Что, и в BigInteger не влазят?
Re[2]: свой тип данных
От: codenet Россия  
Дата: 29.06.13 01:13
Оценка: :)))
Здравствуйте, koodeer, Вы писали:

K>Здравствуйте, Аноним, Вы писали:


А>>Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.


K>Что, и в BigInteger не влазят?


я понимаю что можно отмерять долго подбирая типы это всё хорошо,но меня интересует техническая возможность

давай возьмем простой пример

dynamic a = double.MaxValue * 10 / 10;
a--;

после double.MaxValue * 10 ...значение уходит в Infinity
и потом что с ним не делай... / на теже или a--....
оно будет равно Infinity.
Re: свой тип данных
От: Doc Россия http://andrey.moveax.ru
Дата: 29.06.13 10:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет.

А>Предположим мне необходимо работать с большими числами которые не влазят в имеющиеся типы данных.
А>как реализовать свой тип в котором будут мои ограничения на MaxValue

А в чем проблема создать свою структуру, определить для неё математические операции и операции приведения к существующим типам и строке. Там хоть бесконечности храните и обрабатывайте по своим правилам.
Re[3]: свой тип данных
От: xednay89 Россия  
Дата: 29.06.13 19:46
Оценка:
Здравствуйте, codenet, Вы писали:

C>я понимаю что можно отмерять долго подбирая типы это всё хорошо,но меня интересует техническая возможность



Тип BigInteger является постоянным типом, который представляет сколь угодно большое целое число, значение которого теоретически не имеет верхнего или нижнего предела.

Re[3]: свой тип данных
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.07.13 04:02
Оценка:
Здравствуйте, 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--;
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.