丸め数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) —作品の数丸めた正負の数です。
  • 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(), からPerl5.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).

その他の記事