[解決済み] Perlで浮動小数点数を丸めるには?
質問
10進数(浮動小数点)を最も近い整数に丸めるにはどうしたらよいですか?
例
1.2 = 1
1.7 = 2
解決方法は?
の出力
perldoc -q round
Perlにround()関数はあるのか? ceil()やfloor()は? Trig関数は?次のことを忘れないでください。
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パールでは、三角測量は
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がそうしろと言っているのだ。 これを の下にある絶対値が整数のPerlの数値。
2**31
(但し 32ビットマシンでは、数学的な整数とほぼ同じように動作します。 それ以外の数値は保証されません。
関連
-
Perlの基本的な配列のソート方法
-
Windowsにperlとkomodo IDEをインストールする詳細な手順
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] HTML5でfloat入力タイプはありますか?
-
[解決済み] 除算を強制的に浮動小数点にするにはどうしたらいいですか?除算は0に切り捨てられ続けますか?
-
[解決済み] JavaScriptで浮動小数点数の精度を扱うには?
-
[解決済み] 数字を切り上げるには?
-
[解決済み] Javascriptで小数点以下1桁に丸めるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン