Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Конвертирование в дробь [D5, Win95/98, WinXP]


Иван ©   (2002-10-25 10:25:00) 

Здравствуйте! Хочу задать вопрос: как можно конвертировать число с плавающей точкой в математическую дробь?(Может есть компонент какой?) Например:0,25 -> 1/4;
1,89655172413793103448275862068966 -> 55/29
и т.д. и т.п.


k   (2002-10-25 14:05:00) [1]

осталось только научиться сокращать дроби, т.е. находить НОД


Dm9   (2002-10-25 12:46:00) [2]

Алгоритм такой.
Если дробь конечна, то представлешь в виде X/10^n, потом сокращаешь.
0.25 -> 25/100 -> 1/4
Если после запятой периодический кусок, то делишь этот кусок на 999999... (число девяток = числу цифр в периодической части).
0.(3) -> 3/9 -> 1/3
0.(234) -> 234/999 -> 26/111.
0.0(3) -> 0.(3) / 10 -> 3/9 / 10 -> 1/3 / 10 -> 1/30


MBo   (2002-10-25 10:31:00) [3]

для рациональных чисел (периодические дроби) см.
http://algolist.manual.ru/forum/viewtopic.php?t=103


Наверх

Титульная страница Поиск, карта сайта Написать письмо