Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
 Аватар для Jesterru
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299

Как осуществить BigDouble?

23.07.2017, 18:22. Показов 5423. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Я решил написать резиновый тип данных для дробных чисел. Я использовал 2 BigInteger'a (1ый - числа до запятой, 2ой - после запятой). Но я столкнулся с некоторыми проблемами:
1. Как осуществить деление, умножение и вычитание? Какая формула? (Для сложения, например мы разбиваем числа, например, 123 и 321 на https://www.cyberforum.ru/cgi-bin/latex.cgi?1*{10}^{2} + 2*{10}^{1} + 3*{10}^{0} и https://www.cyberforum.ru/cgi-bin/latex.cgi?3*{10}^{2} + 2*{10}^{1} + 1*{10}^{0} после чего мы все это складываем). Буду благодарен, если вы скинете ссылки на нормальные источники
2. Наверное, это очень глупо, но с классами я работаю впервые. Как мне присвоить самому моему "классу" какое либо значение либо присвоить чему либо значение класса. Объясню на примере. При работе с BigInteger'ом мы пишем :
C#
1
2
BigInteger Bg1 = 1000;
int Integer1 =  Bg1;
В моей программе мне пришлось писать отдельный метод, благодаря которому надо писать
C#
1
2
BigDouble Bd1 = new BigDouble();
Bd1.SetValue("число");
Как вы видите, для присваивания чисел требуется больше строк кода. А как выводить значения я что то вообще не пойму...

Буду благодарен всем тем, кто помог или подсказал, как мне решить мои "проблемы"
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2017, 18:22
Ответы с готовыми решениями:

Как осуществить поиск значения в процессе, как в Cheat Engine?
Шурстя несколько дней в поисковике, я натыкался на информацию на то как найти значение по базовому адресу. Если базового адреса нет (то...

Как осуществить десериализацию json?
Помогите осуществить "разбор" данного json а конкретно мне нужно получить next_max_id, и pk каждого "элемента" users { ...

Как осуществить дозапись в файл
Здравствуйте. Столкнулся с очередной проблемой. Моя задача - записать в файл данные. Самый простой пример: private void...

9
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
23.07.2017, 18:34
А как быть с бесконечными дробями?
0
 Аватар для Jesterru
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
23.07.2017, 18:42  [ТС]
Цитата Сообщение от Fleder Посмотреть сообщение
А как быть с бесконечными дробями?
В каком смысле?
0
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
23.07.2017, 18:56
Ну, вы хотите числа до запятой представить одним BigInteger, а числа после запятой - другим.
Вот я и спросил, как быть, если дробь бесконечная и у неё после запятой мульён мульярдов квадрильёнов знаков.

Например, чило пи.
0
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
23.07.2017, 19:07
Лучший ответ Сообщение было отмечено Jesterru как решение

Решение

Цитата Сообщение от Jesterru Посмотреть сообщение
Как мне присвоить самому моему "классу" какое либо значение либо присвоить чему либо значение класса
перегрузить операторы присваивания
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct BigDouble {
    private double _val;
 
    public BigDouble(double val) {
        _val = val;
    }
 
    public static implicit operator double(BigDouble val) {
        return val._val;
    }
 
    public static implicit operator BigDouble(double val) {
        return new BigDouble(val);
    }
}
 
 
//...
BigDouble bd = 9.0;
double d = bd;
1
 Аватар для Jesterru
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
23.07.2017, 19:12  [ТС]
Хм, это и вправду проблема. Но пока что мне еще далеко до таких проблем. Я еще меньшую часть класса сделал

Добавлено через 3 минуты
Цитата Сообщение от jr_ Посмотреть сообщение
перегрузить операторы присваивания
Спасибо огромное.
Но проблема с формулами осталась...
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
23.07.2017, 21:47
можно просто Math.NET Numerics использовать))
0
 Аватар для Jesterru
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
24.07.2017, 08:28  [ТС]
FateOri, В каком смысле использовать? Что именно?
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
28.07.2017, 11:45
Цитата Сообщение от Jesterru Посмотреть сообщение
FateOri, В каком смысле использовать? Что именно?
там есть класс для работы с такими числами))
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,436
Записей в блоге: 14
28.07.2017, 13:07
Ещё PeterO.Numbers EDecimal есть, позволяющее указывать явно размер числа.
https://peteroupc.github.io/Nu... cimal.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.07.2017, 13:07
Помогаю со студенческими работами здесь

Как осуществить удаление файла
Ребят, подскажите пожалуйста.. каким образом можно удалить файлы, пути к которым я знаю..

Как из программы осуществить ее перезапуск
Здравствуйте! Скажите, пожалуйста, можно ли как-нибудь сделать перезапуск своей программы из нее же самой? Или как это делается?...

Как осуществить формулу комбинаторики
Есть 9 цифр, от 1 до 9. На экран нужно выводить по 3 цифры в порядке убывания без повторений тройки и без повторений одной и той же цифры...

Как осуществить поиск в текстовом файле
Здравствуйте, уважаемые мной форумчани)) Вообщем, нужно дописать функционал программы... А именно, нужно сделать проверку выводимой...

Как осуществить чтение из текстового файла
Приветик всем, я хотела бы спросить. Вот я создала блокнот и ввела там пароль для входа в программу и бы хотела, чтобы программа спрашивала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru