Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перевод десятичной дроби в обыкновенную

1.9K
31 января 2008 года
burst
94 / / 04.09.2006
Здравствуйте. Стоит такая задача.
Вспомнив школьный курс математики (http://www.college.ru/mathematics/courses/algebra/content/chapter1/section2/paragraph2/theory.html), будем считать что вспомнили как это делать на листочке ручкой.
Но нужно это дело автоматизировать. Как это сделать? анализировать дробное число, искать в нем период, потом разбирать его на части и переводить? бред.
Может кто то вспомнит и предложит универсальный метод?
4
31 января 2008 года
mike
3.7K / / 01.10.2002
0.454545=454545/1000000

Или нужна несокращаемая дробь?
1.9K
31 января 2008 года
burst
94 / / 04.09.2006
Может быть несколько случаев:
1. 0.25 = 25/100 = 1/4
2. 0.(35). х=0.(35), 100х=35.(35), 100х-х=35.(35)-0.(35), 99х = 35, х=35/99
3. 0.123(46) = 0.123 + 0.001*0.(46) = 123/100 + 1/1000*46/99.

Первый случай - конечная дробь
Второй - периодическая бесконечная
Третий - смешанно-периодическая бесконечная

Встает 2 вопроса:
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?
2. double x = 231.234434. Как узнать сколько знаков после запятой ?
261
31 января 2008 года
ahilles
1.5K / / 03.11.2005
Цитата: burst

Встает 2 вопроса:
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?


вот это самое сложное в твоей задаче.

Цитата: burst

2. double x = 231.234434. Как узнать сколько знаков после запятой ?


например можно так:
переводишь число в строку ищешь символ "." в строке, и потом из длины строки вычитаешь позицию этого символа.
либо так:

 
Код:
обнуляем счётчик
 повтор:
  получить дробную часть числа
  если дробная часть равна нулю, то выход
  если не равна нулю, то счётчик++ и прыгаем на "повтор"
  на выходе в переменной счётчика получаем количество знаков после запятой
260
31 января 2008 года
Ramon
1.1K / / 16.08.2003
Полярная система координат
1.9K
31 января 2008 года
andriano
474 / / 10.01.2008
Цитата: burst
Встает 2 вопроса:
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?

Во-первых, число у тебя не в десятичной, а в двоичной системе. А во-вторых, не так уж много у него знаков - максимум 64 разряда мантиссы. Соответственно, период никак не может превосходить 32 двоичных разрядов.

Цитата:

2. double x = 231.234434. Как узнать сколько знаков после запятой ?

После запятой всегда одинаковое количество знаков, т.к. вещественные числа записываются в формате с плавающей запятой. Порядок надо смотреть.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог