반올림 번호를 Perl

에서는 Perl 프로그래밍 언어가는 방법은 여러 가지할 수 있는 라운드 번호를 정수입니다.

당신이 필요에 따라하에서 최종 사용할 필요가 다른 방법이 있습니다. 를 선택할 때의 방법이 올림 관심을 지불해야하는 방법 필요 둥근 부정적인 숫자입니다.

여기에는 테이블 보여주는 결과가 서로 다른 방법입니다. 모든 이러한 방법을 위한 반올림에서 사용할 수 있는 Perl 자의 경우,Perl,당신 중 하나를 사용할 수 있습니다.이러한 방법입니다.

                        -1.8  -1.5  -1.2   0     1.2   1.5   1.8
.................................................................
int($x)                 -1    -1    -1     0     1     1     1
POSIX::floor($x)        -2    -2    -2     0     1     1     1
int($x + 0.5)           -1    -1     0     0     1     2     2
sprintf('%.0f', $x)     -2    -2    -1     0     1     2     2
POSIX::ceil($x)         -1    -1    -1     0     2     2     2

(이 테이블을 사용하여 만든 코드 https://PerlBanjo.com/bf555d3112 ).

  • int($x) —분수 부분 삭제
  • POSIX::floor($x) —항상 내림
  • int($x + 0.5) —에 대한 긍정적인 숫자 작업의 규정에는 수학적 반올림하고,부정적인 숫자에게 어떤 말도
  • sprintf('%.0f', $x) —works 의 규정에 의해 수학 라운딩을 위해 긍정적이고 부정적인 숫자입니다.
  • POSIX::ceil($x) —항상 라운드까지

라운딩하는 몇 소수 자릿수

방법 중 하나 어떻게 라운드 번호를 몇 개 소수 자릿수에 Perl 그것을 사용하 sprintf("%.2f", $x).

에서 번호를 %.2f 는 방법을 많은 것을 의미를 떠나야 할 필요가 있는 숫자는 소수점 이하. 여기에는 예제 코드:

▶ Run
#!/usr/bin/perl

use feature qw(say);
use Math::Trig;

say sprintf("%.0f", pi());
say sprintf("%.1f", pi());
say sprintf("%.2f", pi());
say sprintf("%.3f", pi());
say sprintf("%.4f", pi());
say sprintf("%.5f", pi());

결과:

3
3.1
3.14
3.142
3.1416
3.14159

의 방법으로 반올림에 새로운 버전의 Perl

에서 시작 Perl5.22 표준에서의 유통 Perl 기능을 구현 POSIX::trunc()POSIX::round(), 에서 펄 5.24 의 기능 POSIX::lround(). 여기에는 테이블과 함께 결과 의 모든 방법(https://PerlBanjo.com/4314405cde ):

                        -1.8  -1.5  -1.2   0     1.2   1.5   1.8
.................................................................
int($x)                 -1    -1    -1     0     1     1     1
POSIX::trunc($x)        -1    -1    -1     0     1     1     1
POSIX::floor($x)        -2    -2    -2     0     1     1     1
int($x + 0.5)           -1    -1     0     0     1     2     2
POSIX::round($x)        -2    -2    -1     0     1     2     2
POSIX::lround($x)       -2    -2    -1     0     1     2     2
sprintf('%.0f', $x)     -2    -2    -1     0     1     2     2
POSIX::ceil($x)         -1    -1    -1     0     2     2     2

결과 POSIX::trunc($x) 에서 이 테이블과 같은 int($x). 와 정확히 동일한 결과를 POSIX::round($x)POSIX::lround($x) 에서 이 테이블 정확히 같은 sprintf('%.0f', $x).

다른 기사