Typ zmiennej

Odpowiedz Nowy wątek
2019-11-19 12:17

Rejestracja: 4 miesiące temu

Ostatnio: 4 miesiące temu

0

Witam piszę w takiej sprawie, mam na zajęcia zrobić program liczący cenę brutto na netto, ale to jest nieważne, ponieważ program działa dobrze. Tylko mam jeden problem, kiedy podam większą kwotę brutto, to w wyniku końcowym, kwoty netto liczba nie jest taka ma być. Mam pytanie, jaki typ zmiennej mam ustawić, aby ta liczba była "normalna".

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

using namespace std;

int main ()
{
  long double netto, brutto, vat;

  cout << "Podaj stawke vat: ";
  cin >> vat;

  cout << "Podaj cene burtto: ";
  cin >> brutto;

  netto = brutto / ( 1 + 0.01*vat);

  netto *= 100;
  netto = ceil(netto);
  netto /= 100;

  cout << "Cena netto: " << netto << endl;

  return 0;
}

1.png

  • 1.png (0.02 MB) - ściągnięć: 21

Pozostało 580 znaków

2019-11-19 12:19

Rejestracja: 3 lata temu

Ostatnio: 1 minuta temu

1

Co to znaczy, że liczba ma być "normalna"?


Pozostało 580 znaków

2019-11-19 12:22

Rejestracja: 4 miesiące temu

Ostatnio: 4 miesiące temu

0
lion137 napisał(a):

Co to znaczy, że liczba ma być "normalna"?

Żeby liczba wyświetlała się w normalnej postaci a nie z literką "e"

Pozostało 580 znaków

2019-11-19 12:25

Rejestracja: 3 lata temu

Ostatnio: 1 minuta temu

1

To Użyj std::fixed


Pozostało 580 znaków

2019-11-19 12:28

Rejestracja: 4 miesiące temu

Ostatnio: 4 miesiące temu

0
lion137 napisał(a):

To Użyj std::fixed

Teraz działa, ale nie zaokrągla mi do dwóch miejsc po przecinku

Pozostało 580 znaków

2019-11-19 12:33

Rejestracja: 3 lata temu

Ostatnio: 1 minuta temu

To Daj:
cout.precision(2);.


Pozostało 580 znaków

2019-11-19 12:35

Rejestracja: 4 miesiące temu

Ostatnio: 4 miesiące temu

0
lion137 napisał(a):

To Daj:
cout.precision(2);.

Dziękuję, działa

Pozostało 580 znaków

2019-11-19 12:44

Rejestracja: 12 lat temu

Ostatnio: 2 minuty temu

1

FYI w prawdziwych aplikacjach związanych z pieniędzmi nie stosuje się liczb zmiennoprzecinkowych (jak float lub double) z powodu błędów zaokrągleń.
Używane są zwykle typ z bibliotek (zwykle nazywane Decimal), by mieć kontrolę na zaokrągleniami do konkretnych miejsc po przecinku.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2019-11-19 12:46

Rejestracja: 5 lat temu

Ostatnio: 6 godzin temu

2
MarekR22 napisał(a):

FYI w prawdziwych aplikacjach związanych z pieniędzmi nie stosuje się liczb zmiennoprzecinkowych (jak float lub double) z powodu błędów zaokrągleń.

Prawie się zgadza, wystarczy zamienić nie stosuje się na powinno się nie stosować :D

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0