A Setprecision használata C++ nyelven

A Setprecision Hasznalata C Nyelven



Lehet, hogy megtanulta és tanulmányozta a lebegőpontos értékeket és a tudományos jelöléseket a matematikában és a fizikában. Lehet, hogy megtanulta a lebegőpontos számok kerekítését is. A setprecision segédprogramot a C++ nyelvben gyakran használják a lebegőpontos egész kimeneti sorozaton belül megjelenő számsorok megváltoztatására. Ugyanúgy működik, mint a kerekítési funkció. Ez a módszer az standard könyvtárban van definiálva. Ebben az oktatóanyagban megmutatjuk, hogyan kell használni a C++ „setprecision” funkcióját. Szóval, kezdjük. El kell indítanunk az Ubuntu shell alkalmazást a „Ctrl+Alt+T” használatával, hogy dolgozhassunk rajta. Inicializálnunk kell a C++ fordító telepítését, ami esetünkben g++. Tehát az apt csomagot eddig erre a célra használjuk. A rendszer néhány másodperc alatt telepíti a g++-t: $ sudo alkalmas telepítés g++

01. példa:

Tehát megnyitottuk a „new.cc” fájlt „nano” utasítással. Ez a fájl a shell „touch” lekérdezésével jön létre. A fájl most üres fájlként indul el a nano szerkesztőben. A tetejére hozzáadtuk az „iostream” bemeneti-kimeneti fejlécfájlt. Az „iomanip” könyvtár hozzáadásra került a kódunk setprecision() metódusának használatához. Ezt követően a szabványos „std” névteret használtuk, hogy megbizonyosodjunk arról, hogy a kód és a szintaxis szabványos módját használjuk. A teljes kódot a C++ kód main() függvényében hajtották végre. Más, felhasználó által definiált funkció nem használható erre a célra.







A main() függvényen belül inicializáltunk egy dupla típusú „v” változót dupla értékkel. Az első „cout” standard utasítás frissítés nélkül jeleníti meg a „v” dupla változó tényleges értékét a shell-en. Ezt követően 8 cout utasítást használtunk a setprecision() metódus használatához mindegyikben. Ez arra szolgál, hogy a setprecision()-t minden alkalommal alkalmazzuk a „v” változó minden lebegőpontos pontjára. Meg kell értenie, hogy a beállítási pontosság csak az 5-nél nagyobb vagy azzal egyenlő értékre vonatkozik. Ha a lebegőpontos érték nagyobb, mint 5, akkor az előtte lévő értéket növeli.



Például a setprecision() az 1. lebegőpontosnál „5”-tel kerekít a pont után, és a „4” értéket 5-re alakítja át. Hasonlóképpen a 2. lebegőpontos „2” értéket nem lehet kerekíteni, a A 3. lebegőpontos „7” a „2” értéket „3”-ra konvertálja, a 4. „4” lebegőpontos érték nem kerekíthető, az 5. „9” lebegőpontos érték pedig a „4” értéket. ” előtte 5-re. A „0” pontnál a „4” értéket 5-re konvertálja. A negatív setprecision() nem tesz mást, mint a teljes tényleges értéket. A 0-tól 5-ig és a -1, -2 lebegőpontokban lévő összes érték megjelenik a setprecision() alkalmazása után:







Ideje lefordítani és futtatni a setprecision C++ kódot a g++ fordítási lekérdezéssel és a „./a.out” végrehajtási lekérdezéssel. A kimenet azt mutatja, hogy az első setprecision(1) 4-et 5-re konvertál. A setprecision(2) nem csinált semmit, és „4.5”-et jelenít meg. A beállított pontosság(3) „4,52”-ről „4,53”-ra növelte az értéket. A setprecision(4) semmit sem tesz a „4.527” értékkel. A setprecision(5) az értéket „4,5274”-ről „4,5275”-re növeli. A setprecision(0) az értéket 5-re növelte. A setprecision(-1) és setprecision(-2) semmit sem csinált, az alábbiak szerint:

$ g++ új.cc

$. / a.out



02. példa:

Vessünk egy pillantást egy másik esetre. A kód hasonló a fenti példához, csak a cout utasításaiban változott. Az első cout az eredeti értékeket mutatja, míg a következő kettő a setprecision() eredményét mutatja az 1-es és 5-ös lebegőpontokban. Az utolsó cout a setprecision() metódus eredményét jeleníti meg a 9-es lebegőpontban, amely fizikailag nem elérhető. Az 1-es és az 5-ös lebegőpontos eredmények nagyon vártak, de a 9-es lebegőpontosról nem tudunk mit mondani. Csak futtassuk le a fájlt, és nézzük meg, mi lesz ennek a kódnak a kimenete:

#include

#include

segítségével névtér std ;

int fő- ( ) {

kettős ban ben = 4,52749 ;

cout << 'Érték a beállított pontosság előtt:' << ban ben << ' \n ' ;

cout << beállított pontosság ( 1 ) << 'Val at 1: ' << ban ben << ' \n ' ;

cout << beállított pontosság ( 5 ) << 'Val at 5: ' << ban ben << ' \n ' ;

cout << beállított pontosság ( 9 ) << 'Val at 9: ' << ban ben << ' \n ' ;

Visszatérés 0 ;

}

Ennek a kódnak a fordítása és végrehajtása után nyilvánvaló eredményeket kaptunk a „4.52749” lebegőpontos értékű 1. és 3. helyen végzett beállítási pontosság tekintetében. A 9. setprecision eredménye a „v” dupla változó tényleges értékét mutatja. Ennek az lehet az oka, hogy a 9. hely értéke nem rögzített:

$ g++ új.cc

$. / a.out

Frissítsük újra a kódot, hogy javítsuk a „v” változó értékét. Tehát a változó 1. helyén alkalmazott első setprecision() cout utasítás után a rögzített változót használtuk a coutban:

#include

#include

segítségével névtér std ;

int fő- ( ) {

kettős ban ben = 4,52749 ;

cout << 'Érték a beállított pontosság előtt:' << ban ben << ' \n ' ;

cout << beállított pontosság ( 1 ) << 'Val at 1: ' << ban ben << ' \n ' ;

cout << rögzített ;

cout << beállított pontosság ( 5 ) << 'Val at 5: ' << ban ben << ' \n ' ;

cout << beállított pontosság ( 9 ) << 'Val at 9: ' << ban ben << ' \n ' ;

Visszatérés 0 ;

}

A frissített kód fordítása és futtatása után megkaptuk a setprecision rögzített eredményét a „v” változó 9. helyén, azaz a 4.527490000.

$ g++ új.cc

$. / a.out

Következtetés:

Végül ez arról szólt, hogy a setprecision() metódust használjuk a C++ kódban egy dupla változó értékének kerekítésére és megjelenítésére. Elmagyaráztuk a kódban szereplő rögzített változókat és azok előnyeit is. Ezenkívül két fontos példát implementáltunk a halmazpontosság fogalmának magyarázatára a C++ nyelvben. Reméljük, hogy hasznosnak találta ezt a cikket. További tippekért és oktatóanyagokért tekintse meg a Linux Hint többi cikkét.