Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
1

Из дробного - в целое

28.11.2012, 07:59. Показов 4899. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть дробное число. Например: double a=123.456;
Нужно убрать в нём запятую, превратив в целое число 123456.
Количество десятичніх знаков (после запятой) неизвестно.
Превращать число в строку и обратно нельзя, нужно всё сделать числовыми методами.
Чисто логически, следует домножать число на 10, пока не останется дробной части:
while (a-int(a))
a*=10;

Но такой "фокус" не проходит из-за особенностей представления вещественных чисел, где 123.456 на самом деле представлено как 123.45599999999(9).
Вопрос 1: Всегда ли вещественное число a.b представлено в памяти ПК как a.(b-1)999999(9) или есть варианты?
Вопрос 2: Как числовым методом превратить дробную часть вещественного числа (с произвольным количеством цифр) в целое число?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2012, 07:59
Ответы с готовыми решениями:

Из дробного числа в целое
Помогите вспомнить есть такая функция или процедура не помню точно из дробного числа (ну т.е. из...

преобразование дробного в целое
каким оператором можно преобразовать дробное число в целое, или откинуть дробную часть? Подскажите...

Выводит целое значение вместо дробного
Добрый день. Подскажите что упустил, выводит челочисленное значение откусывая дробную часть ...

Ошибка преобразования из дробного типа в целое
Возможно, решение не самое эффективное, но увидела реализацию именно так. Вроде правильно, должно...

6
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,687
28.11.2012, 08:23 2
Цитата Сообщение от LVV Посмотреть сообщение
Всегда ли вещественное число a.b представлено в памяти ПК как a.(b-1)999999(9) или есть варианты?
если дробная часть степень 2 то будет четкое представление
прочитай про формат IEEE 754
например http://ru.wikipedia.org/wiki/Ч... й_точности

Цитата Сообщение от LVV Посмотреть сообщение
Как числовым методом превратить дробную часть вещественного числа (с произвольным количеством цифр) в целое число?
никак
должен задавать количество знаков после запятой
переведи мне в целое число
1/3= 0.33333333(3) ?
так и здесь
1
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
28.11.2012, 08:47  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
Цитата Сообщение от LVV
Как числовым методом превратить дробную часть вещественного числа (с произвольным количеством цифр) в целое число?
никак
должен задавать количество знаков после запятой
переведи мне в целое число
1/3= 0.33333333(3) ?
так и здесь

Но ведь речь идёт о конечной (непериодичной) десятичной дроби. Например. 1.345
Как числовыми методами узнать сколько имеется знаков после запятой?
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,687
28.11.2012, 08:51 4
Цитата Сообщение от LVV Посмотреть сообщение
Но ведь речь идёт о конечной (непериодичной) десятичной дроби. Например. 1.345
а процессор оперирует двоичными дробями и твоя непериодичная запросто может превратится в периодичную
там еще много условностей например нет 0 (есть положительный 0 и отрицательный 0)
1
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
28.11.2012, 11:35  [ТС] 5
Спасибо.
Я так понял, что числовых методов узнать количество знаков после запятой (точки) в десятеричной записи не существует...
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,687
28.11.2012, 11:59 6
Цитата Сообщение от LVV Посмотреть сообщение
Что-то ссылка не работает
это форум рубит
скопируй в адресную строку
должно пойти
или поищи в гугле "Число_двойной_точности"
должна быть первая ссылка

Добавлено через 20 минут
могу предложить такой вариант
описываешь свой класс для десятичных дробей
один член целое другой дробное десятичное значения (все целочисленное)
переопределяешь ввод пока вводят цифры то в целое как ввели запятую то ввод в дробное
правда и все другие методы (вывод умножение сложение.....) переопределять придется
1
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
28.11.2012, 14:44  [ТС] 7
Цитата Сообщение от ValeryS Посмотреть сообщение
правда и все другие методы (вывод умножение сложение.....) переопределять придется
Вот то-то и оно...
Но всё равно спасибо.
0
28.11.2012, 14:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2012, 14:44
Помогаю со студенческими работами здесь

Дано целое число m. получить найбольщее целое k при котором 4^k<m
дано целое число m. получить найбольщее целое k при котором 46^k&lt;m Добавлено через 1 минуту...

Дано целое число m>1. Получить наибольшее целое k, при котором k3<m
Дано целое число m&gt;1. Получить наибольшее целое k, при котором {k}^{3}&lt;m

Дано целое число N (> 1). Вывести наибольшее целое К, при котором выполняется неравенство
ловие: Дано целое число N (&gt; 1). Вывести наибольшее целое К, при котором выполняется неравенство...

Дано целое число m>1. Получить наименьшее целое k, при котором 4^k>m. Блок-схема
Дано целое число m&gt;1. Получить наименьшее целое k, при котором 4^k&gt;m.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru