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

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

Войти
Регистрация
Восстановить пароль
 
thecyme
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 2
#1

Ввод числа без точки в float - C++

11.10.2013, 20:40. Просмотров 522. Ответов 3
Метки нет (Все метки)

Здравствуйте форумчане, учусь в институте, вот тут практический написал задачу, но возникла проблема:
Если вдруг мне надо будет вводить целые числа, типа "4","5","6", вместо "4.0","5.0","6.0".
Как мне преобразовать ведённое int во Float.
P.s: (прочтите первым делом)
Простые примеры типа
C++
1
2
n*1.0 ; 
(double) n;
не помогают!.
Для особо любопытных:

Введённые числа используются в функции modf(n,&m), которая требует обязательно наличия точки.
Как решать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2013, 20:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод числа без точки в float (C++):

Ввод с консоли без заданного числа элементов - C++
Всем привет ! 1 Не понятно почему cin.get() не понимает что нужно вводить до тех пор пока не будет 2 раза пробел ? 2 Как можно...

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing - C++
#include<stdio.h> #include<stdlib.h> #include<math.h> float f1(float x)/*vira*enie 1*/ {return (x*cos(x))/(1+ pow(x,2));} ...

Ввод в файл типа float - C++
Как элементами с++ ввести данные типа float? Что бы в файле записалось число не int, а именно float?

Ввод и вывод чисел типа float - C++
Прошу объяснить, в чём ошибка в коде Хотел написать простенький код, но что-то не то с выводом результата :/ Прошу помочь :c

Float к char* без format и тп - C++
Здравствуйте. Как можно обычными алгоритмами преобразовать float к char*? PS. format и прочие стандартные функции знаю. Интересна...

как вывести float без экспоненты? - C++
void initialize() { for(int i=0; i<TICK; i++) TickspeedRequired=BaseDuration/((i+13)-0.5); //TickspeedRequired - float //...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
11.10.2013, 20:45 #2
static_cast<double> должно работать.
0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
11.10.2013, 20:48 #3
Цитата Сообщение от thecyme Посмотреть сообщение
Как мне преобразовать ведённое int во Float.
- если ты вводишь значение переменной типа double (float) и не задаешь точку, число все равно будет числом с плавающей точкой (т.е. обрабатываться будет верно).

Цитата Сообщение от thecyme Посмотреть сообщение
которая требует обязательно наличия точки
- этого быть не может. Приведи код функции modf.
0
thecyme
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 2
11.10.2013, 22:58  [ТС] #4
Цитата Сообщение от Catstail Посмотреть сообщение
- если ты вводишь значение переменной типа double (float) и не задаешь точку, число все равно будет числом с плавающей точкой (т.е. обрабатываться будет верно).

- этого быть не может. Приведи код функции modf.
Сразу целиком, всю задачу

P.s. к задачке добавил (float) введённое число в надежде что, что-то изменится, но нет. Буду пробовать ещё предложенные способы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
float X[1000];
int n;
int minimal () {
    int minx = 0;
    int Xmin = X[0];
    for (int i=0;i<n;i++) {
        if (X[i]<Xmin) {
            minx = i;
            Xmin = X[i];
        }
    }
    return minx;
}
 
 
void sdvig (int x) {
    for (int i=n;i>x;i--) {
        X[i+1]=X[i];
        X[i]=0;
    }
}
 
 
void nuli () {
    for (int i=0;i<n;i++) {
        if ((X[i]<0)&&(X[i+1]!=0)) {
            sdvig (i);
            n++;
        }
    }
}
 
 
float summa () {
    float sum = 0 ;
    float modf1= 2.0;
    for (int i=0;i<n;i++) {
        if (modf(X[i],&modf1)==0) sum+=X[i];
    }
    return sum;
}
 
float proizved () {
    float proi=1;
    float modf1= 2.0;
    for (int i=0;i<n;i++) {
        if ((modf(X[i],&modf1)!=0)&&(X[i]!=0)) proi*=X[i];
    }
    return proi;
}
 
void main () {
    int yes=0;
    float tempf;
    cout << "\"Razmer massiva\"(n) = ";cin >>n;
    for (int i=0;i<n;i++) {
        cout << i <<" = ";cin >> tempf;
        X[i]=(float) tempf;
    }
    // Summa
    float summ = summa();
    // Proizvedenie
    float proi = proizved();
    int minx = minimal();
    nuli ();
    if (minimal()!=minx) {
        cout << "\n Polozhenie Minimalnogo elementa izmenilos \n";
    }
    else if (minimal()==minx) {
        cout << "\n Minimalnii Element Ostalsya na meste \n";
    }
    cout << "\n Summa Chetnih elementov = " << summ << "\n Proizvedenie nechetnih = " << proi;
    cout << "\n elementi massiva(na vsyak sluchai) ";
    for (int i=0;i<n;i++) cout << "\n" << i << " = " << X[i] << "; ";
    system ("Pause");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2013, 22:58
Привет! Вот еще темы с ответами:

Как преобразовать число float в int без потери данных? - C++
Здравствуйте, форумчане. Столкнулась с такой проблемой: для работы программы требуется целое число, но вводится число типа float. Так вот,...

Чем отличаются float преобразования (float)var от float(var) - C++
Здравствуйте! Подскажите, чем отличается (float)var от float(var)

Целые числа типа float - C++
Помогите разобратся: вот написал маленькую прогу, но она пишет десятичные числа типа float и double только в виде целой части. Почему? вот...

Ввод символов до точки С++ - C++
как можно огранизовать данную программу (ввод символов до точки ) кто может помочь?будьте добры


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2013, 22:58
Ответ Создать тему
Опции темы

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