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

DWORD to double - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Саааня
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 9
18.08.2011, 13:31     DWORD to double #1
нарисовалась такая проблемка - не могу корректно привести число типа DWORD к числу типа double
если кто знает-подскажите как это правильно сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2011, 13:31     DWORD to double
Посмотрите здесь:

C++ invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’
Какая-нибудь реализация функции void Fun (double in, double *out) C++
C++ Объяснить, что это значит double *F; F=new double[n];
C++ Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
C++ long double и double в MSVC 12 одно и тоже, нужна информация,желательно быстрей
C++ std::copy из vector<double> в *double, непонятный warning
C++ Вывести long double число без перевода в double
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
18.08.2011, 13:39     DWORD to double #2
Так пробовали?
C++
1
2
DWORD i = 2;
double r = 1.*i;
Иван СВ
7 / 7 / 0
Регистрация: 17.08.2011
Сообщений: 19
18.08.2011, 13:40     DWORD to double #3
Саааня,
попробуй так:
C++
1
2
3
4
DWORD a = 0xff;
double b = 0.0;
 
b = 1.0 * a;
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
18.08.2011, 13:41     DWORD to double #4
А в чём проблема-то? Обычное явное преобразование вроде
C
1
(double)val;
или
C++
1
static_cast<double>(val);
чем не подходят? Что значит корректно?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1284 / 1218 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
18.08.2011, 13:57     DWORD to double #5
С каких пор DWORD перестал умещаться в double?
Саааня
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 9
18.08.2011, 14:35  [ТС]     DWORD to double #6
чего-т я ничего не пойму
число 0x3ff00000 по идее должно представляться в double как 1.0,так?
но почему-то ни один из способов не подходит
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
18.08.2011, 14:38     DWORD to double #7
DWORD в Вашем случае - это представление числа с плавающей точкой? Если да, то попробуйте float.

Цитата Сообщение от Саааня Посмотреть сообщение
double как 1.0,так?
Без понятия.
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
18.08.2011, 14:46     DWORD to double #8
Цитата Сообщение от Саааня Посмотреть сообщение
число 0x3ff00000 по идее должно представляться в double как 1.0,так?
Нет конечно же. Но если надо DWORD интерпретировать как double, то можно воспользоваться указателями или лучше объединением. Только DWORD 32-битный, так что ему больше подойдёт float, а не double.

Добавлено через 7 минут
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
#include <iostream>
 
#ifndef DWORD
#define DWORD unsigned int
#endif
 
union dw2dbl
{
    double dbl;
    DWORD dw[2];
};
 
union dw2flt
{
    float flt;
    DWORD dw;
};
 
int main()
{
    dw2dbl cnv1;
    dw2flt cnv2;
 
    cnv1.dw[0] = 0;
    cnv1.dw[1] = 0x3ff00000;
 
    cnv2.dw = 0x3ff00000;
 
    std::cout << "to double: " << cnv1.dbl << std::endl;
    std::cout << "to float: " << cnv2.flt << std::endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2011, 14:58     DWORD to double
Еще ссылки по теме:

Почему перестает работать программа при замене double на long double? C++
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++
Почему мы пишем double x (double y)? а не через запятую double x,y C++
C++ Error: invalid types 'double [10][10][double]' for array subscript
Исправить ошибки "cannot convert 'double (*)(double)' to 'double'" и "too many arguments to function" C++

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

Или воспользуйтесь поиском по форуму:
Саааня
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 9
18.08.2011, 14:58  [ТС]     DWORD to double #9
grizlik78, спасибо,теперь заработало как надо)
Yandex
Объявления
18.08.2011, 14:58     DWORD to double
Ответ Создать тему
Опции темы

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