Како користити Сетпрецисион у Ц++

Kako Koristiti Setprecision U C



Можда сте научили и проучавали вредности са покретним зарезом и научну нотацију у математици и физици. Можда сте такође научили да заокружујете бројеве са покретним зарезом. Услужни програм сетпрецисион у Ц++ се често користи за измену низа бројева приказаних унутар излазне секвенце целог броја са помичним зарезом. Функционише исто као и функција заокруживања. Овај метод је дефинисан у стандардној библиотеци <иоманип>. У овом водичу ћемо вам показати како да користите Ц++-ову функцију „сетпрецисион“. Дакле, хајде да почнемо. Морамо покренути Убунту схелл апликацију преко „Цтрл+Алт+Т“ да бисмо радили на њој. Морамо да иницијализујемо инсталацију Ц++ компајлера, што је у нашем случају г++. Дакле, апт пакет ће се до сада користити за ову сврху. Систем ће инсталирати г++ за само неколико секунди: $ судо погодан инсталирај г++

Пример 01:

Дакле, отворили смо “нев.цц” датотеку са “нано” инструкцијом. Ова датотека је креирана коришћењем упита „тоуцх“ љуске. Датотека се сада покреће у уређивачу нано као празна датотека. Додали смо улазно-излазну датотеку заглавља „иостреам“ на врху. Библиотека „иоманип“ је додата да користи метод сетпрецисион() нашег кода. Након овога, користили смо стандардни простор имена „стд“ да бисмо били сигурни да користимо стандардни начин кода и синтаксе. Целокупни код је изведен унутар функције маин() Ц++ кода. Ниједна друга кориснички дефинисана функција се не користи за ову сврху.







Унутар функције маин() иницијализовали смо променљиву двоструког типа „в“ са двоструком вредношћу. Прва стандардна изјава 'цоут' приказује стварну вредност двоструке променљиве 'в' на љусци без икаквог ажурирања. После овога, користили смо 8 наредби цоут да бисмо у свакој употребили метод сетпрецисион(). Ово је да примените сетпрецисион() на променљиву „в“ сваки пут са помичним зарезом. Морате разумети да сетпрецисион ради само на вредности већој или једнакој 5. Ако је вредност са покретним зарезом већа од 5, она ће повећати вредност пре ње.



На пример, сетпрецисион() у 1. покретном зарезу ће заокружити „5” после тачке, а вредност „4” ће бити конвертована у 5. Слично томе, друга вредност са помичним зарезом „2” се не може заокружити, Трећа вредност са помичним зарезом „7“ ће конвертовати вредност „2“ у „3“, 4. вредност са помичним зарезом „4“ се не може заокружити, а 5. вредност са помичним зарезом „9“ ће конвертовати вредност „4 ” до 5 пре њега. У тачки „0“ ће конвертовати вредност „4“ у 5. Негативни сетпрецисион() не ради ништа осим приказује целу стварну вредност. Све вредности у плутајућим тачкама од 0 до 5 и -1, -2 биће приказане након примене сетпрецисион():







Време је да компајлирате и покренете сетпрецисион Ц++ код са упитом за компилацију г++ и упитом за извршавање „./а.оут“. Излаз показује да први сетпрецисион(1) претвара 4 у 5. Сетпрецисион(2) није урадио ништа и приказује „4.5“. Сетпрецисион(3) је повећао вредност са “4,52” на “4,53”. Сетпрецисион(4) не ради ништа на вредности „4.527“. Сетпрецисион(5) повећава вредност са “4,5274” на “4,5275”. Сетпрецисион(0) је повећао вредност на 5. Сетпрецисион(-1) и сетпрецисион(-2) нису урадили ништа као што је приказано испод:

$ г++ нев.цц

$. / а.оут



Пример 02:

Хајде да погледамо још један пример. Код је сличан горњем примеру, само са променом у његовим изјавама цоут. Први излаз приказује оригиналне вредности, док следећа два показују резултат сетпрецисион() у покретним тачкама 1 и 5. Последњи излаз приказује резултат методе сетпрецисион() у покретној тачки 9, који физички није доступан. Резултати 1 и 5 са ​​покретним зарезом су прилично очекивани, али не можемо ништа рећи о покретном зарезу 9. Хајде да само извршимо датотеку и проверимо шта ће бити излаз овог кода:

#инцлуде <иостреам>

#инцлуде <иоманип>

Користећи именског простора стд ;

инт главни ( ) {

дупло ин = 4.52749 ;

цоут << 'Вредност пре подешавања прецизности: ' << ин << ' ' ;

цоут << сетпрецисион ( 1 ) << 'Вал у 1: ' << ин << ' ' ;

цоут << сетпрецисион ( 5 ) << 'Вал у 5: ' << ин << ' ' ;

цоут << сетпрецисион ( 9 ) << 'Вал у 9: ' << ин << ' ' ;

повратак 0 ;

}

Након компилације и извршења овог кода, имамо очигледне резултате за прецизност постављања на локацијама 1 и 3 вредности са помичним зарезом „4.52749“. Резултат сетпрецисион 9 показује стварну вредност двоструке променљиве “в”. Ово може бити због чињенице да вредност за локацију 9 није фиксна:

$ г++ нев.цц

$. / а.оут

Хајде да поново ажурирамо код да поправимо вредности променљиве „в“. Дакле, након прве сетпрецисион() цоут изјаве примењене на 1. локацију променљиве, користили смо фиксну променљиву у цоут:

#инцлуде <иостреам>

#инцлуде <иоманип>

Користећи именског простора стд ;

инт главни ( ) {

дупло ин = 4.52749 ;

цоут << 'Вредност пре подешавања прецизности: ' << ин << ' ' ;

цоут << сетпрецисион ( 1 ) << 'Вал у 1: ' << ин << ' ' ;

цоут << фиксно ;

цоут << сетпрецисион ( 5 ) << 'Вал у 5: ' << ин << ' ' ;

цоут << сетпрецисион ( 9 ) << 'Вал у 9: ' << ин << ' ' ;

повратак 0 ;

}

Након компајлирања и покретања овог ажурираног кода, имамо фиксни резултат сетпрецисион на локацији 9 променљиве „в“, тј. 4.527490000:

$ г++ нев.цц

$. / а.оут

Закључак:

Коначно, све се радило о коришћењу методе сетпрецисион() у Ц++ коду да би се заокружила и приказала вредност двоструке променљиве. Такође смо објаснили фиксне варијабле у коду и њихове предности. Поред тога, имплементирали смо два важна примера да објаснимо концепт прецизности скупа у Ц++. Надамо се да вам је овај чланак био од помоћи. Погледајте друге чланке о Линук саветима за више савета и туторијала.