@wows15
В автоматизации сила, брат

Почему значение переменной меняется само собой?

#include <iostream>
#include <math.h>
#include <iomanip>

int main () {

	std::cout << std::setprecision(20);

	std::cout << std::endl;
	std::cout << "Данная программа работает с формулой Лоренца для движения с постоянной скоростью." << std::endl << std::endl;

	std::cout << "Что вы хотите вычислить?" << std::endl;
	std::cout << "3 - скорость движущегося объекта" << std::endl;
	std::cout << "Ответ: ";

	int answer;
	std::cin >> answer;

	const int c = 299792458; // Скорость света - константа
	double V; // Скорость движущегося объекта
	double dt; // Время, пройденное для наблюдателя
	double dt0 ; // Время, пройденное для движущегося

	if (answer == 3) {

		std::cout << "Введите время в секундах, пройденное для движущегося объекта: ";
		std::cin >> dt0;

		std::cout << "Введите время в секундах, пройденное для наблюдателя (должно быть больше чем пройденное время для движущегося объекта: ";
		std::cin >> dt;

		V = c * sqrt( 1 - dt0*dt0/dt/dt );

		std::cout << std::endl;
		std::cout << "Если объект будет двигаться со скоростью " << V << " м/с, то пока для него пройдёт " << dt0 << " сек, для наблюдателя пройдёт " << dt << " сек.";
	}

	std::cout << std::endl;
	std::cout << std::endl;
	return 0;
}


Значение переменной dt меняется само собой в конце при выводе. Например, ввожу я 1.0001, а в выводе пишет 1.0001000000000000581. Как такое возможно?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы