in reply to Re^3: How to use the int-function?
in thread How to use the int-function?
my $float = shift; my $dec = shift;
with
my ($float, $dec) = @_;
This is almost entirely cosmetic in this context.
I would also point out your algorithm will still be subject to the whims of these small deviations between string and double precision representation. Consider the default case of:
which outputs:#!/usr/bin/perl use strict; use warnings; my $number = defined $ARGV[0] ? $ARGV[0] : 1.2549999999999999; my $places = defined $ARGV[1] ? $ARGV[1] : 2; printf "%.20f\n", $number; print round( $number , $places ), "\n"; sub round { my ($float, $decimals) = @_; my $int_leftShiftFloat = int( $float * 10**($decimals + 1) ); my $int_Round = int( ( $int_leftShiftFloat + 5 ) / 10 ); my $float_rightShiftInt = $int_Round / 10**$decimals; my $float_Result = $float_rightShiftInt; return $float_Result }
1.25499999999999990000 1.26
|
|---|