Страница 1 из 1

Проблема с приведением типов

Добавлено: 11 июл 2014, 17:26
Darya8
Добрый день. Простая задача с решением квадратного уравнения, проблема в том, что корни выводятся не в нужном мне формате, мне нужно, чтобы выводились с погрешностью 10^-4, допустим корни 3 и 4, на выводе: 3.0000 и 4.0000, как быть, помогите пожалуйста?

Код C++

Код: Выделить всё

#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "algorithm"

using namespace std;

void main()
{   
    int a, b, c, d;
    cin >> a >> b >> c;
    d = b * b - 4 * a * c;
    if (d == 0) {
        cout << 1 << endl;
        cout << -b / (2 * a);
    }
    if (d > 0) {
        double x1 = (-b + sqrt(d)) / (2.0 * a);
        double x2 = (-b - sqrt(d)) / (2.0 * a);
        cout << 2 << endl;
        cout << min(x1, x2) << ' ' << max(x1, x2);

    }
    else
        cout << 0;
}

Re: Проблема с приведением типов

Добавлено: 12 июл 2014, 11:31
Decoder
Можешь воспользоваться методом cout.precision(), но этот метод задаёт общее число цифр на выходе, включая целую часть числа до запятой. Например...
Код cpp:
// Число ПИ...
double Pi = acos(-1.0);
cout.precision(10);
cout << Pi << endl;



В результате получишь число ПИ с точностью 9 знаков после запятой.


Другой вариант - использовать функцию printf().
Код cpp:
// Число ПИ...
double Pi = acos(-1.0);
printf("%.4f", Pi);
cout << endl;



В этом случае на выходе будет число с точностью 4 знака после запятой, независимо от количества цифр в целой части числа.