С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
Boderman
4 / 4 / 3
Регистрация: 25.03.2013
Сообщений: 140
#1

Как разделить переменую типа double на целое и дробное число ? - C++

29.03.2013, 03:59. Просмотров 4535. Ответов 9
Метки нет (Все метки)

Как разделить переменую типа double на целое и дробное число ?

Добавлено через 23 минуты
Нашол решение :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <windows.h>
using namespace std;
 
 
void main()
{setlocale (LC_ALL,"Russian");
/*double a=0;
cout<<"Введите пожалусто вещёственное число : ";cin>>a;cout<<"\n\n";
int b=(int )a;//Целая часть числа
float c=a-(int )a;//Дробная часть числа
cout<<b<<c;
*/
float k=0;
k=23/100;
cout<<(float)k<<"\n\n";
 
 
 
 
system("pause");}
Но вот беда когда считаю дробную часть из числа , ёё выводит на экран. А вот зделал отдельную переменую (k), и во время выполнения результат не выводится ни в double, ни в float. Просто ноль и все. Подскажите в чом ощибка ?

Добавлено через 6 минут
А вот так считает :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
using namespace std;
 
 
void main()
{setlocale (LC_ALL,"Russian");
/*double a=0;
cout<<"Введите пожалусто вещёственное число : ";cin>>a;cout<<"\n\n";
int b=(int )a;//Целая часть числа
float c=a-(int )a;//Дробная часть числа
*/
double k=1;
k=k/100;
cout<<(float)k<<"\n\n";
 
 
 
 
system("pause");}
Добавлено через 17 секунд
Но всетаки почему так ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 03:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как разделить переменую типа double на целое и дробное число ? (C++):

Проверить, целое число или дробное - C++
Ввожу в консоль значение 5.5, но ошибка не выдается (а должна). В чем проблема, почему не видит функцию? Попутный вопрос: кто-нибудь...

Определить, целое число хранится в переменной, или дробное - C++
помогите ребята.я только учу сам с++.наработал свой проект все вроде пока понимаю но мне ужен маленький кусочек алгоритма.смотрите.скажем...

Почему при выводе имею целое число, а не дробное - C++
Здравствуйте. Почему при выводе имею целое число, а не дробное (как заказывали)? #include &lt;iostream&gt; using std::cout; using...

Как из 4-х байт, составляющих число типа double, получить это число? - C++
Как из 4-х байт, составляющих число типа double, получить это число? Пример: unsigned char tmp={63,128,0,0}; // значение double=1.0

Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах - C++
Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах....

Как считывать только одно число типа double за один проход - C++
Теперь измените тело цикла так, чтобы он считывал только одно число типа double за один проход. Определите две переменные, чтобы...

9
Байт
Нарушитель
Эксперт C
16695 / 10959 / 1688
Регистрация: 24.12.2010
Сообщений: 21,379
29.03.2013, 08:46 #2
Цитата Сообщение от Boderman Посмотреть сообщение
Но всетаки почему так ?
Помни! 2/4 = 0
Но 2.0/4 = 0.5
1
Boderman
4 / 4 / 3
Регистрация: 25.03.2013
Сообщений: 140
29.03.2013, 17:13  [ТС] #3
Цитата Сообщение от Байт Посмотреть сообщение
Помни! 2/4 = 0
Но 2.0/4 = 0.5
Спасибо!
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
29.03.2013, 19:56 #4
Цитата Сообщение от Boderman Посмотреть сообщение
о вот беда когда считаю дробную часть из числа , ёё выводит на экран. А вот зделал отдельную переменую (k), и во время выполнения результат не выводится ни в double, ни в float.
нифига не понятно, пиши по-русски.
1
-=ЮрА=-
Заблокирован
Автор FAQ
30.03.2013, 00:09 #5
Boderman, код ниже выделит из частного целую и дробную части
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    int a = 0;
    int b = 0;
    cout<<"Program which shows parts of a/b"<<endl;
    cout<<"a = ";cin>>a;
    cout<<"b = ";cin>>b;
    double ipart = 0;
    double fpart = modf(1.0*a / b, &ipart);
    cout<<"ipart = "<<ipart<<endl;
    cout<<"fpart = "<<fpart<<endl;
    return 0;
}
2
Миниатюры
Как разделить переменую типа double на целое и дробное число ?  
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
30.03.2013, 00:15 #6
а например дабл привести к целому типу и вычесть это приведение из дабл числа нет?

C++
1
2
3
double d=123.45;
int i=static_cast<int>(d);
double res=d-i;
1
-=ЮрА=-
30.03.2013, 00:33
  #7

Не по теме:

Цитата Сообщение от Kins Посмотреть сообщение
это приведение из дабл числа нет?
double имеет целу часть 150Е10 и 05 в десятичном остатке, в инт 150Е10 привести можно без потери данных?Подумай.

1
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
30.03.2013, 09:43 #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
в инт 150Е10 привести можно без потери данных?Подумай.
А зачем волноваться о потере данных? Важен только результат. Или я чтото не так понял, но всегда так поступал при получении целой и дробной части.
Тотесть:
d=123.45
i=123
res=123.45-123
res=0.45
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.03.2013, 10:05 #9
Kins, -=ЮрА=- говорит о том, что если в изначальном double лежит число >2^31 (максимальное значение для int32), то в Вашем способе будет переполнение и, как следствие, неверный результат.
1
Boderman
4 / 4 / 3
Регистрация: 25.03.2013
Сообщений: 140
30.03.2013, 17:18  [ТС] #10
Цитата Сообщение от taras atavin Посмотреть сообщение
нифига не понятно, пиши по-русски.
Суть в том что не помогает не указание типа начальной переменной (К) ни явное преобразование типов !
0
30.03.2013, 17:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 17:18
Привет! Вот еще темы с ответами:

Как проверить вводилось ли число (типа double или float) в консоль - C++
Как проверить вводилось ли число (типа double или float) в консоль?

Разделить дробное число на 2 части: целая часть числа и его дробная часть - C++
Пользователь вводит с клавиатуры сумму в валюте (дробное число). Вывести по отдельности количество Рублей и количество копеек (например,...

Как правильно число в ячейке типа string, перекинуть в ячейку в тип double ? - C++
Cуть вопроса описанна в теме. Может не правильно объяснил, но всё же, вот пример: #include &lt;iostream&gt; #include &lt;string&gt; ...

Из double сделать целое число, ОКРУГЛИВ его - C++
у меня есть число 173.93939 как его вывести на экран округленным? т.е. 174 язык С++, компилятор VIsual Studio 2008


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

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

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