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

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

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

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17192 / 5446 / 337
Регистрация: 30.03.2009
Сообщений: 14,778
Записей в блоге: 26
10.06.2009, 13:23     преобразование типов
> На самом деле мне было просто было не ясно, почему мы из 1.0001000

Потому что это число НЕ представляется точно в формате double

> То есть, я предполагал, что при преобразовании из float в double берется float, а далее он "добивается" 0-ми.

Так оно и есть:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
volatile double d = 1.0001000550505;
volatile float f;
volatile double dd;
 
int main (void)
{
  printf ("d=%.20f\n", d);
  f = d;
  printf ("f=%.20f\n", f);
  dd =f;
  printf ("dd=%.20f\n", dd);
  return 0;
}
Код
d=1.00010005505049992536
f=1.00010001659393310547
dd=1.00010001659393310547
Просто при переводе double в float произошла потеря точности (поэтому число стало немного другим). В обратную сторону значение не изменилось. При этом не забывай, что числа храняться в двоичном виде, т.е. потеря точности визуально выглядит немного не так, как в десятичном представлении
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru