Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
snakext
6 / 6 / 2
Регистрация: 08.06.2010
Сообщений: 35
#1

Разбить число типа double на 2 числа - C++

14.12.2010, 13:48. Просмотров 1138. Ответов 5
Метки нет (Все метки)

Добрый день!
Попалась мне такая задача - есть 2 интовые переменные, есть число double. Их нужно сложить таким образом : к 1-му интовому прибавляется целая часть double, ко 2-му - дробная.
С целой частью в принципе понятно, просто присвоить double к переменной int, дробная часть сама "обрубится", а вот как выделить только дробную часть ?
http://www.cyberforum.ru/cpp-beginners/thread899375.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 13:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разбить число типа double на 2 числа (C++):

Преобразовать 2 числа int в 1 число float(double) | double int1.int2
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения...

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
Вот программулька: #include <iostream> using namespace std; #include...

Как из 4-х байт, составляющих число типа double, получить это число?
Как из 4-х байт, составляющих число типа double, получить это число? Пример:...

Дайте денормализованное число типа double
Нужно для текста, число надо разобрать на мантиссу и порядок и снова собрать.

С++: числа типа double
Всем добрый вечер!:) Товарищи, я - начинающий чайник, прошу вас объяснить мне...

5
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
14.12.2010, 13:52 #2
snakext, modf() тебе в помощь.
C++
1
2
3
4
5
6
7
8
#include <cmath>
#include <iostream>
 
int main()
{
    double x0 = 3.14, d;
    std::cout << modf(x0, &d) * 100;//Множим на 100, зная что после точки две цыфры.
}
1
snakext
6 / 6 / 2
Регистрация: 08.06.2010
Сообщений: 35
14.12.2010, 14:05  [ТС] #3
А для разных чисел ? Допустим я ввожу этот double с клавиатуры и не знаю сколько у него знаков после запятой ?
0
deadlock
376 / 356 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
14.12.2010, 14:16 #4
Цитата Сообщение от snakext Посмотреть сообщение
А для разных чисел ? Допустим я ввожу этот double с клавиатуры и не знаю сколько у него знаков после запятой ?
так же и пользуешься modf(), она разделения целой и дробной частей вплоть до long double годится
0
snakext
6 / 6 / 2
Регистрация: 08.06.2010
Сообщений: 35
14.12.2010, 14:20  [ТС] #5
Нет, я имел ввиду, при 3.14 мы умножаем 0.14 на 100. А если ввести 3.1415 ? Нужно будет умножить на 10000. Мне надо опеределить кол-во знаков после запятой, для общей формулы. Получится 10 в степени (кол-во знаков после запятой).
0
deadlock
376 / 356 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
14.12.2010, 15:16 #6
Цитата Сообщение от snakext Посмотреть сообщение
Нет, я имел ввиду, при 3.14 мы умножаем 0.14 на 100. А если ввести 3.1415 ? Нужно будет умножить на 10000. Мне надо опеределить кол-во знаков после запятой, для общей формулы. Получится 10 в степени (кол-во знаков после запятой).
1. проверить полученную с помощью modf дробную часть на ==0 (вдруг целое число ввели);
2. счетчик=0;
2. счетчик++, умножить полученную дробную часть на 10 и вычисляем modf(от_полученного_числа), проверяем выделенную дробную часть - если (==0) - выход, счетчик==1 значит всего один знак после запятой, если !=0 - продолжаем пункт 2 до достижения выделенной дробной части ==0; по окончании счетчик - это как раз степень для 10-ти.
1
14.12.2010, 15:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2010, 15:16
Привет! Вот еще темы с решениями:

Сокращение числа типа double
В качестве базового класса реализовать класс Triad (тройка) для хранения...

Аргумент типа double несовместим с параметром типа double*
Функция function должна возвращать количество элементов массива, значение...

Аргумент типа double несовместим с параметром типа double
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; using namespace std;...

Чтение из файла числа типа double
Добрый вечер! Уже долго бьюсь над тем, что у меня слишком маленькая точность...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru