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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
DocaN
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 12
#1

warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++

20.05.2013, 08:41. Просмотров 2675. Ответов 2
Метки нет (Все метки)

Вот код. Работало, теперь не работает. Не пойму в чём дело.

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
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<random>
#include<Windows.h>
#include<cmath>
 
int RegenirationHp()
 
{
    setlocale(LC_ALL, "rus");
int str;      //Количество силы (1 ед. силы = 19 ед. здоровья).
int maxHp;    //Максимальный запас здоровья. (сила * 19) + 100.
float regHp;      //Скорость регенирации здоровья. 
float tekHp;      //Текущее здоровье.
 
tekHp = 10.00;
str = 24;
maxHp = (str * 19) + 100;
regHp = (str / (str * 00.5) + 0.25);
 
while (tekHp < maxHp)   //Если текущее здоровье меньше максимального запаса здоровья.
{
    tekHp = tekHp + regHp;    //То добовляем еденицу регенирации "regHp".
        std::cout << "Текущее здоровье = " << tekHp << std::endl;
 
if (tekHp > maxHp)
{
        tekHp = maxHp;
        std::cout << "Максимальное здоровье = " << maxHp << std::endl;
}}
system("pause");
return RegenirationMp();
}
 
//*******************************************************************************************************************************//
 
int RegenirationMp()
 
{
    setlocale(LC_ALL, "rus");
int intc;          //Количество интелекта (1 ед. интелекта = 13 ед. маны).
int maxMp;      //Максимальный запас маны. (интелект * 13) + 100.
float regMp;   //Скорость регенирации маны.
float tekMp;  //Текущая мана.
 
tekMp = 10.00;
intc = 16;
maxMp = (intc * 13) + 100;
regMp = (intc / (intc * 00.2) + 0.15);
 
while (tekMp < maxMp)    //Если текущее здоровье меньше максимального запаса маны.
{
    tekMp = tekMp + regMp;  //То добовляем еденицу регенирации "regMp".
        std::cout << "Текущая мана = " << tekMp << std::endl;
 
if (tekMp > maxMp)
{
        tekMp = maxMp;
        std::cout << "Максимальная мана = " << maxMp << std::endl;
}}
system("pause");
return RegenirationHp();
}
Если нельзя float присвоить integer значение, как обойти эту ситуацию?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 08:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос warning C4244: =: преобразование "double" в "float", возможна потеря данных (C++):

Warning C4244: return: преобразование "double" в "float", возможна потеря данных - C++
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244: return: преобразование &quot;double&quot; в &quot;float&quot;,...

Warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Возникла проблема Решаю лабу, написал код, выдает ошибку (warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря данных) ...

Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных - C++
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование &quot;__int64&quot; в &quot;int&quot;, возможна...

warning C4244: =: преобразование "double" в "float - C++
Объясните нубу пожалуйста, почему выкидывает это предупреждение ? warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря...

Ошибка преобразование "time_t" в "unsigned int", возможна потеря данных - C++
Добрый день,по условию задачи: &quot;найти сумму элементов,расположенных на главной и побочной диагонали квадратной матрицы&quot; у меня вышла вот...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,678
20.05.2013, 09:06 #2
Цитата Сообщение от DocaN Посмотреть сообщение
Если нельзя float присвоить integer значение
кто сказал?
C++
1
2
3
4
5
6
7
int main()
{
    int a=0;
    float b=100.2;
 
    b=a;
}
, просто вы получите целое

C++
1
2
3
4
5
6
#include<cmath>
 
int RegenirationHp();
int RegenirationMp();
 
ваш этот код дальше
0
DocaN
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 12
20.05.2013, 10:12  [ТС] #3
C++
1
tekMp = maxMp;
тоже самое что и вы предложили. но при компиляции откуда не возьмись появляется double.
якобы будет потеря данных. но мне же нужно вывести maxHp и maxMp в исходное значение.
Пользуюсь VS2012 Ultimate

Что самое интересное, сегодня уже запускалась программа.

Добавлено через 20 минут
Всё нашёл решение проблемы. спасибо за помощь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2013, 10:12
Привет! Вот еще темы с ответами:

Необъявленный идентификатор, преобразование "int" в "float" - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define N 50 #define M 50 int n,m,i,j,k,r; void...

Ошибка усечение из "double" к "float" - C++
Обясните пожалуйста что это за ошибка усечение из &quot;double&quot; к &quot;float&quot; никак не могу понять

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...


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

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

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