Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемма с double 
V
    Опции темы
mr.DUDA
Дата 9.5.2008, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



source777, трабл в том что обычно нужен ввод исходных данных в виде строки. И тут ты хоть колом на голове теши, не сможешь перевести все возможные числа, введённые пользователем, из формата floating point в формат делимое/делитель. Ну вот введу я к примеру "1,01928" и напиши алгоритм вычисляющий сабж. smile


--------------------
user posted image
PM MAIL WWW   Вверх
source777
Дата 9.5.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(mr.DUDA @  9.5.2008,  20:32 Найти цитируемый пост)
Ну вот введу я к примеру "1,01928" и напиши алгоритм вычисляющий сабж.
Это как раз таки самая элементарнейшая часть данной задачи. 
Алгоритм:
1) выяснить сколько цифр после запятой ввёл пользователь, равно m
2) числитель = k = исх.число * 10^m
3) знаменатель = n = 10 ^ m
4) по алгоритму Евклида находим НОД(k; n)
5) сокращаем и получаем обыкновенную дробь, "введённую" пользователем.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
FREEDEV
Дата 12.5.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

Репутация: 1
Всего: 3



Давненько я сюда не заглядывал, спасибо всем за ответы.
Действительно числа представлены в компьютере степенями двойки, поэтому в Debugeре видна была подобная картина, результат же выводимый пользователю, имел нормальный вид. За исключением значений массива в сумме дававших 0,  тогда возвращаемым значением было что-то наподобие указанного выше, поправил округлением.

--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
Lycifer
Дата 14.5.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



source777
Это конечно хорошо использовать дробь, тока есть такой вопрос, как же быть если приходится передавать в функции и конечно получать результаты(sin, cos...)?
PM MAIL ICQ   Вверх
source777
Дата 14.5.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(Lycifer @  14.5.2008,  10:05 Найти цитируемый пост)
Это конечно хорошо использовать дробь, тока есть такой вопрос, как же быть если приходится передавать в функции и конечно получать результаты(sin, cos...)? 
А тут нам на помощь спешат многочисленные тригонометрические формулы, ряды Тейлора и конечно же ленивые вычисления, я уже об этом писал чуть выше...
P.S. Не забывай, что любая математическая функция может быть представлена в виде суммы ряда обыкновенных дробей, причём функцию, представленную в таком виде, можно вычислить с любой точностью, а точность задаётся когда запрашивается результат, тогда же и происходят реальные вычисления...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.