
This tutorial explains multiple ways to round floating numbers in Perl.
Perl Floating number round example
There are multiple ways we can round a float number Floating numbers can be rounded in two types.
ceiling: a rounding number to a number greater than the current number. For example round of 2.6 is 3.
Floor: rounding number to a number less than the current number. For example round of 2.6 is 2.
using Math::round module
Math::round module provides extension functions for rounding numbers.
- First import all functions of the
Math::round
module - call the round function with a given floating number
- Returns the roundest integer number
use Math::Round qw(:all);
my $floatNumber= 123.12
my $result = round( $floatNumber );
print "$result";
Output:
123
- use POSIX module POSIX module provides rounding utility functions
- ceil: return the rounded to a number greater than a given number.
- floor: Return the rounded to a number less than a given number.
Here is an example
use POSIX;
my $floatNumber= 123.12;
my $result = ceil( $floatNumber );
my $result1 = floor( $floatNumber );
print "$result\n";# 124
print "$result1"; #123
Output:
124
123
- use the Math::BigFloat module
Math::BigFloat module provides various utility methods for number systems. First, create a number using BigFloat -> new method.
- Call the
bfround
function to return the nearest integer - call the
bfloor
function to return the floor of a floating number - call the
bceil
function to return the floor of a floating number
Here is an example
use Math::BigFloat;
my $floatNumber= 123.12;
print Math::BigFloat->new($floatNumber)->bfround(1),"\n";#123
print Math::BigFloat->new($floatNumber)->bfloor(3),"\n"; #123
print Math::BigFloat->new($floatNumber)->bceil(3); #124
- use the sprintf function
sprintf
function converts given floating number with expression and does rounding number
my $floatNumber= 123.12121;
my @result=sprintf "%.0f", $floatNumber;
print "@result" #123
Perl Limit decimal places in floating numbers
This example limits the decimal places in a floating number.
The printf
function returns the floating number by limiting decimal places.
my $floatNumber= 123.12121;
printf("%.2f\n",123.11111);
printf("%.2f\n",123.666);
printf("%.2f\n",111.61266);
Output:
123.11
123.67
111.61