Perl number
7 отговора
359 прегледа
Perl number
Някой може ли да ми каже как в Perl мога да закръгля число до втория символ:
т.е. имам примерно
$num=21.341;
и резултата искам да е:
21.34
Благодаря предварително
т.е. имам примерно
$num=21.341;
и резултата искам да е:
21.34
Благодаря предварително
Re: Perl number
използвай sprintf
$num = 21.341;
$num = sprintf("%.2f", $num);
# $num == 21.34
# perldoc -f psrintf
$num = 21.341;
$num = sprintf("%.2f", $num);
# $num == 21.34
# perldoc -f psrintf
Re: Perl number
Това не е закръгляване а резачка. В Perl няма функция за закръгляване, трябва сам да си я напишеш или google...
Re: Perl number
напротив - има закръгляне - погледни следните функции:
ceil - This is identical to the C function "ceil()", returning the smallest integer value greater than or equal to the given numerical argument.
floor - This is identical to the C function "floor()", returning the largest integer value less than or equal to the numerical argument.
Core module POSIX
но явно, че тук потребителя иска точно "орязване", само че играта на думи ли е важна или крайния резултат?
ceil - This is identical to the C function "ceil()", returning the smallest integer value greater than or equal to the given numerical argument.
floor - This is identical to the C function "floor()", returning the largest integer value less than or equal to the numerical argument.
Core module POSIX
но явно, че тук потребителя иска точно "орязване", само че играта на думи ли е важна или крайния резултат?
Re: Perl number
Говорим за закръгляване на реални числа, не на цели. Ceil и Floor са за цели числа. Закръгляването в Perl се прави с проста собственоръчно написана функция или с външен модул (както е писал човека по-долу).
Re: Perl number
по принцип от математиката е добре известно, че
round(x)=floor(x+0.5)
тука закръглянето на x.5 е нагоре.
Примерно за закръгляне до 2 цифри след десетичната точка можем да умножим по 100:
ето го закръглянето:
floor(100*$x+0.5)/100
round(x)=floor(x+0.5)
тука закръглянето на x.5 е нагоре.
Примерно за закръгляне до 2 цифри след десетичната точка можем да умножим по 100:
ето го закръглянето:
floor(100*$x+0.5)/100
Re: Perl number
Ceil и Floor са за цели числа. - tova go kaji avtora na POSIX module-a, shte nauchi neshta, koito ne e znael.
kak se syhranqvat chislata ot perl interpretatora spored teb?
sledniq kod kakvo ti govori?
perl -MPOSIX -e 'print floor(1.1234567)'
### output: 1
perl -MPOSIX -e 'print ceil(1.1234567)'
### output: 2
kak se syhranqvat chislata ot perl interpretatora spored teb?
sledniq kod kakvo ti govori?
perl -MPOSIX -e 'print floor(1.1234567)'
### output: 1
perl -MPOSIX -e 'print ceil(1.1234567)'
### output: 2