Přejít na hlavní obsah

Kopertování desetinného čísla na 1 znaménko za bodem v C++

  • Hana Havlíčková
  • Rady

V programovacím jazyce C++ existuje několik způsobů, jak odvodit desetinné číslo se správnou přesností. V tomto článku se podíváme na jednu z nich, konkrétně na použití funkce std::setprecision ze standardní knihovny .

Například k odvodu čísla 3.14159 s přesností na 1 číslici za čárkou můžeme napsat následující kód:

Po spuštění tohoto kódu bude na obrazovce zobrazeno číslo 3.1, protože jsme uvedli přesnost na 1 číslici za čárkou. Pokud chceme číslo odvodit s větší přesností, například s přesností na 3 číslice za čárkou, můžeme jej přenést do funkce std::setprecision hodnota 3: std::setprecision(3).

Níže je uveden příklad kódu, který demonstruje použití těchto funkcí:

V důsledku provedení tohoto kódu bude vyvedeno číslo 3.1.

Pokud se například číslo rovná 3.1415 a přesnost je nastavena na 2 číslice za desetinnou čárkou, pak se číslo zobrazí jako 3.14. Pokud je přesnost nastavena na 5 číslic, zobrazí se celé číslo 3.1415.

Funkce tedy std::fixed a std::setprecision umožňují ovládat zobrazení desetinných čísel v C++.

Pojem desetinného čísla

Například v čísle 123,3 desetinná soustava představuje následující pozice a hmotnosti:

  • 1-vybití stovek (10 na stupeň 2)
  • 2-vybití desítek (10 na stupeň 1)
  • 3-výboj jednotek (10 na stupeň 0)
  • 3-vybití desetin (10 v stupni -1)

Číslo 123,3 tedy představuje součet děl číslic čísla na jejich hmotnosti:

1 * 10^2 + 2 * 10^1 + 3 * 10^0 + 3 * 10^(-1) = 100 + 20 + 3 + 0,3 = 123,3

Desetinná čísla jsou v každodenním životě široce používána k reprezentaci zlomkových hodnot, peněžních částek, atd.

Desetinné číslo: definice a vlastnosti

Desetinná čísla, známá také jako plovoucí desetinná čísla, jsou čísla, která mohou obsahovat desetinná místa. Umožňují reprezentovat čísla s velmi velkými nebo velmi malými hodnotami s přesností na jednu číslici.

#include #include int main()

Tento kód vyšle číslo 3.1, kde přesnost po čárce je jedna číslice.

Zvláštností práce s desetinnými čísly v C++ je, že mohou ztratit přesnost v důsledku omezení reprezentace čísel s plovoucí desetinnou čárkou v paměti počítače. Proto při operacích nad desetinnými čísly, zejména při dělení a násobení, může dojít k zaokrouhlení a ztrátě přesnosti.

Pro snížení ztráty přesnosti při práci s desetinnými čísly v C++ se doporučuje použít datový typ long double, který představuje čísla s větší přesností, ale vyžaduje více paměti.

ObchodPříkladVýsledek
Sčítání3.1 + 2.45.5
Odčítání5.6 - 3.22.4
Násobení2.5 * 3.28.0
Dělení6.3 / 2.13.0

Pokud například chceme odvodit číslo 3.14159 s přesností na jednu číslici za čárkou, můžeme použít následující kód:

#include using namespace std;int main()
Число с точностью до 1 цифры после запятой: 3.1

Pro použití manipulátoru std::setprecision () je nutné zahrnout hlavičkový soubor iomanip s následující směrnicí:

Příklad použití manipulátoru:

V tomto příkladu bude číslo odvozeno s přesností na jednu číslici za čárkou. Pokud chcete změnit přesnost na jinou hodnotu, stačí změnit argument funkce std::setprecision().

Zaokrouhlení čísla

Jedním ze způsobů zaokrouhlení čísla je použití funkce round . Funkce round přijímá desetinné číslo na vstup a vrací jeho zaokrouhlenou hodnotu s přesností na nejbližší celé číslo.

Zde je příklad použití funkce round k zaokrouhlení čísla:

double number = 3.14159;double roundedNumber = round(number);std::cout 

Zde je příklad použití funkce setprecision k zaokrouhlení čísla:

double number = 3.14159;std::cout 

V závislosti na požadavcích konkrétního úkolu lze zvolit nejvhodnější způsob zaokrouhlení čísla s přesností na jednu číslici.

Jak zaokrouhlit desetinné číslo

Zaokrouhlení desetinného čísla v programovacím jazyce C++ lze provést pomocí různých matematických funkcí. Níže jsou uvedeny příklady použití těchto funkcí:

FunkcePopis
round()Zaokrouhluje číslo na nejbližší celou hodnotu
floor()Zaokrouhluje číslo na nejbližší menší celek
ceil()Zaokrouhluje číslo na nejbližší větší celou hodnotu

Příklad použití funkce round () k zaokrouhlení desetinného čísla:

double number = 3.85;

double roundedNumber = round(number);