обнуляем счётчик
повтор:
получить дробную часть числа
если дробная часть равна нулю, то выход
если не равна нулю, то счётчик++ и прыгаем на "повтор"
на выходе в переменной счётчика получаем количество знаков после запятой
Перевод десятичной дроби в обыкновенную
Вспомнив школьный курс математики (http://www.college.ru/mathematics/courses/algebra/content/chapter1/section2/paragraph2/theory.html), будем считать что вспомнили как это делать на листочке ручкой.
Но нужно это дело автоматизировать. Как это сделать? анализировать дробное число, искать в нем период, потом разбирать его на части и переводить? бред.
Может кто то вспомнит и предложит универсальный метод?
Или нужна несокращаемая дробь?
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. Как узнать сколько знаков после запятой ?
Цитата: burst
Встает 2 вопроса:
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?
вот это самое сложное в твоей задаче.
Цитата: burst
2. double x = 231.234434. Как узнать сколько знаков после запятой ?
например можно так:
переводишь число в строку ищешь символ "." в строке, и потом из длины строки вычитаешь позицию этого символа.
либо так:
Код:
Полярная система координат
Цитата: burst
Встает 2 вопроса:
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?
1. Вот я получил некое число с плавующей точкой Х. Мне теперь надо его дробную часть разбирать, искать есть ли период, где он начинается и тд и тп.?
Во-первых, число у тебя не в десятичной, а в двоичной системе. А во-вторых, не так уж много у него знаков - максимум 64 разряда мантиссы. Соответственно, период никак не может превосходить 32 двоичных разрядов.
Цитата:
2. double x = 231.234434. Как узнать сколько знаков после запятой ?
После запятой всегда одинаковое количество знаков, т.к. вещественные числа записываются в формате с плавающей запятой. Порядок надо смотреть.