Добавил:
AlexKon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ЯП2 / ЯП2
.cpp#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
std::cout << "Ошибка №1 - Исчезновение операнда" << std::endl;
float a1 = 0.001f;
float b1 = 1000000.f;
float result1 = a1 + b1;
std::cout.precision(12);
std::cout << "Тип float. Результат - " << result1 << std::endl;
double a2 = 0.0001;
double b2 = 1000000.;
double result2 = a2 + b2;
std::cout.precision(11);
std::cout << "Тип double. Результат - " << result2 << std::endl;
std::cout << "\n" << std::endl;
std::cout << "Ошибка №2 - Умножение ошибки" << std::endl;
float a3 = 0.f;
double b3 = 0.;
for (int i = 0; i < 1000; i++)
{
a3 += 0.1f;
b3 += 0.1;
}
std::cout.precision(12);
std::cout << "Тип float. Результат - " << a3 << std::endl;
std::cout.precision(12);
std::cout << "Тип double. Результат - " << b3 << std::endl;
std::cout << "\n" << std::endl;
std::cout << "Ошибка №3 - Потеря значимости" << std::endl;
float a4 = 1111111.1f;
float b4 = 1111111.0f;
float result3 = a4 - b4;
double a5 = 1111111.1;
double b5 = 1111111.0;
double result4 = a5 - b5;
std::cout.precision(12);
std::cout << "Тип float. Результат - " << result3 << std::endl;
std::cout.precision(12);
std::cout << "Тип double. Результат - " << result4 << std::endl;
}