Perl har inte en inbyggd funktion särskilt utformade för att runda flyttal till heltal , men du kan skriva din egen funktion som införlivar sprintf funktionen att avrunda dessa siffror till närmaste hela . Den sprintf Funktionen tar två argument , ett format och en lista . Listan är helt enkelt numret du vill avrunda uppåt eller nedåt . Använd " % .0 f " som format , vilket talar om för funktionen att antalet är flyttal och du vill avrunda det till noll siffror efter decimalkommat . Instruktioner
1
Öppna ett Perl programfil . Skriv följande kod :
sub intCheck {
min $ num = skift,
retur ( $ num = ~ m /^ \\ d + $ /) ;
}
Detta skapar en funktion som heter " intCheck " som först får ett argument som skickas till den och sparar den till en variabel som heter " $ num , " återgår " true " om detta antal är ett heltal . eller " false " om det inte är
2
Skriv följande kod :
sub runda {
min $ var = skift,
om ( intCheck ( $ var - 0,5 ) ) { $ var = $ var + 0,1; }
återvända sprintf ( " % .0 f " , $ var ) ;
}
Detta skapar en funktion som heter " runda . " Det blir argumentet som skickas till den och sparar den i " $ var " variabel . Det anropar sedan intCheck funktion och passerar variabelnummer minus 0,5 . Om intCheck returnerar " true ", den $ var har 0,1 adderas till det . Den runda avrundar funktionen då variabeln till närmaste heltal och returnerar den
3
Skriv följande kod : .
Print runda ( 4,49 ) . " \\ n ";
print runda ( 4,51 ) . " \\ n ";
print runda ( 4,5 ) . " \\ n ";
Dessa rader testa runda funktionen . Den första raden rundorna ner till fyra och de nästa två rader runda upp till fem .
4
Spara Perl filen .