10進数(浮動小数点)を最も近い整数に丸めるにはどうすればよいですか?
例えば
1.2 = 1
1.7 = 2
の出力 perldoc -q round
Perlにはround()関数がありますか?ceil()とfloor()はどうですか?トリガー機能?に
int()
向かって切り捨てられることを忘れないでください0
。特定の桁数に丸める場合、sprintf()
またはprintf()
通常は最も簡単なルートです。printf("%.3f", 3.1415926535); # prints 3.142
POSIX
モジュール(標準Perl配布の一部)を実装しceil()
、floor()
および他の数学的及び三角関数の数。use POSIX; $ceil = ceil(3.5); # 4 $floor = floor(3.5); # 3
5.000〜5.003 perlsでは、
Math::Complex
モジュールで三角法が実行されました。5.004では、Math::Trig
モジュール(標準のPerlディストリビューションの一部)が三角関数を実装しています。内部的にはMath::Complex
モジュールを使用し、一部の関数は実軸から複素平面に分割できます。たとえば、2の逆正弦です。金融アプリケーションでの丸めは深刻な影響を与える可能性があるため、使用する丸め方法を正確に指定する必要があります。このような場合、Perlで使用されているシステムの丸めを信頼するのではなく、必要な丸め関数を自分で実装することをお勧めします。
理由を確認するには、中間点の交替でまだ問題が発生することに注意してください。
for ($i = 0; $i < 1.01; $i += 0.05) { printf "%.1f ",$i} 0.0 0.1 0.1 0.2 0.2 0.2 0.3 0.3 0.4 0.4 0.5 0.5 0.6 0.7 0.7 0.8 0.8 0.9 0.9 1.0 1.0
Perlのせいにしないでください。これはCと同じです。IEEEはこれを行わなければならないと言っています。絶対値が
2**31
(32ビットマシンの)整数であるPerl番号は、数学的な整数とほとんど同じように機能します。その他の番号は保証されません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加