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

преобразование типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать структуру в файл http://www.cyberforum.ru/cpp-beginners/thread39293.html
подскажыте, как записать структару в файл!
C++ Дан массив данных о работающих в фирме Дан массив данных о работающих в фирме: фамилия, имя, отчество, адрес ( улица, дом, квартира) и дата поступления на работу (месяц, год). Напечатать данные тех из них, кто на сегодняшний день... http://www.cyberforum.ru/cpp-beginners/thread39274.html
C++ Пом Динамический - двумерный массив, не работает=(
//--------------------------------------------------------------------------- // Дана целочисленная квадратная матрица. Определить сумму элементов //в тех столбцах, которые не содержат...
Создание двумерного массива C++
помогите решить зачетную работу. Заполнить квадратную матрицу(например 10 на 10) случайными числами(функция).Написать программу построения одномерного массива, элементы которого равны разницы...
C++ Из заданного интервала натуральных чисел определить все простые числа http://www.cyberforum.ru/cpp-beginners/thread39236.html
Завтра сдавать, помогите создать, кто что сможет, буду очень благодарна ... 2 Заданы числа А,В,C,D. Выяснить можно ли прямоугольник со сторонами А и В уместить внутри прямокгольника со сторонами C...
C++ Непонятка с tangens-ом в С++3.1 помогите плз. Пишу программу по учебнику! встретился с тангенс: tg(фи)=-1,5 => фи=-67 градусов не могу понять как тут вышло -67 градусов Попробывал так fi=atan(-1.5)*180/nu const nu=3.14... ... подробнее

Показать сообщение отдельно
Deiron
26 / 26 / 1
Регистрация: 25.05.2009
Сообщений: 98
10.06.2009, 10:07  [ТС]
хммм. У меня Visual С++ 6.0
Дело в том, что такая конструкция у меня работает, но:
есть вычисления, в ходе которых я преобразовываю y_double в y_float. Т.е допустим
-19586.671870135 становится -19586.7 (значения написаны по значениям watch'ей)
Когда же я вычисляю y_double-y_float, то y_float при обратном повышении до double становится не -19586.700000000, а -19586.67187500.
Получается, что либо он каким то образом "помнит" "хвост" double, либо у float точность выше, чем мне показывает при отладке, либо еще что-то.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Convert(double *a,float *b,int size)
{
    int i;
    for (i=0;i<size;i++)
        b[i]=a[i];
}
void SubVect(double * a,float * b,double * c,int dim)
{
  int i;
  double temp;
  for (i=0;i<dim;i++)
  {
      temp=b[i];
      c[i]=a[i]-temp;
  }
}
так вот, при выполнении сначала Convert(a,b,5) а затем SubVect(a,b,5), если смотреть за b[i] и temp, то получается именно то, что я сказал выше. В чем может быть причина? Может, я как то не правильно преобразую double в float?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru