Flytepunktmatematikk i bash

Flytepunktmatematikk i bash

Et tall som har en desimalplass er et flytende tall. Et flytende tall er et positivt og negativt hele tall med et desimalpunkt som 2.5, 10.8, -5.23, osv. Derfor er nøyaktighet avgjørende når du bruker et flytende nummer i en beregning.

Når du jobber med tall, bør du utføre hurtigflytematematikk, spesielt i skallskript. Imidlertid kan det ta mye arbeid for en nybegynner å evaluere flytende punkter i bash. Så i denne opplæringen vil vi gi deg en kort om måtene å utføre Floating Point Math i bash.

Flytepunktmatematikk i bash

Bash støtter bare heltall aritmetikk, så hvis du trenger å utføre beregninger med flytende punkttall, bruk et eget verktøy i bash. La oss gå gjennom noen verktøy og se hvordan du utfører Floating Point Math i Bash:

BC

BC-kommandoen er en interaktiv prosess for å gi aritmetikk i vilkårlig presisjon i bash. BC -kommandoen leser først inndatafilen som er spesifisert av hvilken som helst filparameter og leser deretter standardinngangen. Med BC vilkårlig presisjonskalkulator kan du utføre flytende punktmatematikk i skallskript som tillegg, subtraksjon, multiplikasjon, divisjon osv. For eksempel har vi en bash -fil som følger:


Som du ser, har vi nettopp brukt BC -kommandoen ved hjelp av Pipe i denne bash -filen. La oss kjøre skriptet i terminalen:


Ovennevnte utgang viser tillegg, subtraksjon, multiplikasjon og modul er alle riktige, men divisjonens svar er feil. Derfor må vi legge til skalaen for divisjonen:


Sammen med all divisjonsutgangen vil det også være riktig.


Nå vil vi gå tilbake til bash -filen og erklære et annet nummer hvis verdi vil være hva du vil og vil utføre operasjoner som kraft, kvadratrot osv.


Her finner vi kvadratroten til 2.2, som vi allerede har erklært i bash -filen vår. Når vi kjører bash -filen, vil utdataene våre være noe slikt:


Dermed kan du utføre Floating Point Math.

Perl

Perl -språket krever ikke sammenstilling; I stedet tillater den plattformuavhengig kode. Du kan også utføre aritmetikk av flytende tall i bash ved hjelp av Perl, som støtter språkfunksjoner som C, C ++, CSH, SH, GREP, AWK og SED. Du kan gjøre dette ved å kjøre følgende kommandoer:

$ perl -e 'print 2.2 + 3.3 '
$ 5.5
$ perl -e 'print 2.2 - 3.3 '
$ -1.1

Awk

AWK -verktøyet lar deg skrive effektive, men korte programmer som uttalelser. Stort sett brukes AWK for mønstre for skanning og behandling. Denne kommandoen søker på en eller flere filer for å se om de inneholder matchende linjer og utfører relaterte handlinger. Du kan enkelt utføre Floating Point Math.

Du kan bruke AWK til et hvilket som helst flytende nummer for å beregne kraften (**,^), den naturlige logaritmen (log (x)), kvadratroten (sqrt (x)), arctangent (atan2 (y, x)), sinusfunksjonen (sin (x)), kosinusfunksjonen (cos (x)), og så videre:

$ ekko - | awk 'print sqrt (3.2) '
$ 1.78885
$ ekko - | awk 'print s62.5 /5.5 '
$ 11.3636
$ ekko - | awk 'print sqrt 2.2 ^ 1.3 '
$ 2.78708

Innpakning

Så dette handlet om metodene for å evaluere Floating Point Math i bash -skriptet. Du beregner flytende punkt i forskjellige programmeringsspråk som Perl, Python, Ruby, BC vilkårlig presisjonskalkulator og AWK -mønsterskanning og prosesseringsspråk. Du trenger bare å legge til kommandoene i bashskriptet og deretter kjøre skriptet for å få de ønskede resultatene.