Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
29.03.2013, 03:59     Как разделить переменую типа double на целое и дробное число ? #1
Как разделить переменую типа 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 секунд
Но всетаки почему так ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 03:59     Как разделить переменую типа double на целое и дробное число ?
Посмотрите здесь:

Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах C++
Как из 4-х байт, составляющих число типа double, получить это число? C++
Почему при выводе имею целое число, а не дробное C++
C++ Как правильно число в ячейке типа string, перекинуть в ячейку в тип double ?
C++ Как проверить вводилось ли число (типа double или float) в консоль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
29.03.2013, 08:46     Как разделить переменую типа double на целое и дробное число ? #2
Цитата Сообщение от Boderman Посмотреть сообщение
Но всетаки почему так ?
Помни! 2/4 = 0
Но 2.0/4 = 0.5
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
29.03.2013, 17:13  [ТС]     Как разделить переменую типа double на целое и дробное число ? #3
Цитата Сообщение от Байт Посмотреть сообщение
Помни! 2/4 = 0
Но 2.0/4 = 0.5
Спасибо!
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.03.2013, 19:56     Как разделить переменую типа double на целое и дробное число ? #4
Цитата Сообщение от Boderman Посмотреть сообщение
о вот беда когда считаю дробную часть из числа , ёё выводит на экран. А вот зделал отдельную переменую (k), и во время выполнения результат не выводится ни в double, ни в float.
нифига не понятно, пиши по-русски.
-=ЮрА=-
Заблокирован
Автор FAQ
30.03.2013, 00:09     Как разделить переменую типа double на целое и дробное число ? #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;
}
Миниатюры
Как разделить переменую типа double на целое и дробное число ?  
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
30.03.2013, 00:15     Как разделить переменую типа double на целое и дробное число ? #6
а например дабл привести к целому типу и вычесть это приведение из дабл числа нет?

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

Не по теме:

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

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

Проверить, целое число или дробное C++
Разделить дробное число на 2 части: целая часть числа и его дробная часть C++
C++ Как считывать только одно число типа double за один проход

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

Или воспользуйтесь поиском по форуму:
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
30.03.2013, 17:18  [ТС]     Как разделить переменую типа double на целое и дробное число ? #10
Цитата Сообщение от taras atavin Посмотреть сообщение
нифига не понятно, пиши по-русски.
Суть в том что не помогает не указание типа начальной переменной (К) ни явное преобразование типов !
Yandex
Объявления
30.03.2013, 17:18     Как разделить переменую типа double на целое и дробное число ?
Ответ Создать тему
Опции темы

Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru