Programowanie z zaokrągleniem wyniku

Witam, mam do zrobienia zadanie w którym musze napisać program który na podstawie długości podstaw i wysokości obliczy pole trapezu, a wynik powinien być obliczony z dokładnością do części całkowitych, program obliczający pole trapezu mam, poniżej dodam lecz nie wychodzi mi druga część zadania odnośnie tego aby wynik był w części całkowitej
Jeżeli jest ktoś w stanie pomóc to bardzo bym prosił :smiley:

#include

using namespace std;

int main()

{

double a, b, h, wynik;

cout << "Wprowadz a: "; cin >> a;

cout << "Wprowadz b: "; cin >> b;

cout << "Wprowadz wysokosc: "; cin >> h;

if (h == 0) {

   cout << "Wysokosc nie moze byc rowna 0" << endl;

} else {

   wynik = ((a+b)/2) * h;

   cout << "Pole jest rowne: " << wynik << endl;

}

return 0;

}

Jak nie masz pisać tego od zera (bez nadmiaru bibliotek), to są opcje zaokrąglenia:

Wydaje mi się, że wystarczy użyć setprecision, zamiast paść prosty program dodatkowymi bibliotekami.

Tamten niby wymaga dodania iomanip(“ullatora”): https://www.cplusplus.com/reference/iomanip/setprecision/

okej a mógłbyś jeszcze wyjaśnić jak z tym dokładnie zrobić? bo nie używałem nigdy

Masz rację. To można chyba zadeklarować precyzję w ten sposób

std::cout.precision();

https://www.cplusplus.com/reference/ios/ios_base/precision/

2lajki

dobra a jeszcze możecie mi +/- wytłumaczyć w programie w którym miejscu to zastosować? wsensie jak już obliczy pole to po wyniku dopiero to trzeba wpleść czy jakos wczesniej?

Precyzję ustalasz tylko dla prezentacji wyniku w cout. Robisz to gdzie chcesz (podejrzewam, że działa tylko w obrębie danej funkcji - tutaj main()).
Jeśli w innym miejscu kodu będziesz chciał z inną precyzją wyświetlać zmienne, to będziesz tę deklarację musiał zmienić przed wyświetleniem.
W linku, który podałem masz przykład, który to wyjaśnia. Jest ustalona precyzja, wyświetlenie wyników, zmiana precyzji i kolejne wyświetlenie wyników. Przeanalizuj go to zrozumiesz.

1lajk

Przed próbą wyświetlenia wyniku.

Przy czym precision przy za dużej liczbie zrobi zapis matematyczny:

1.3e+02 :arrow_left: do 2 cyfr :arrow_left: 133,14159

Musisz doczytać czy da się nią tylko wartość po przecinku zaokrąglić:

1lajk