この記事では、Python での小数点以下の桁上げと四捨五入についての紹介 (コード付き) を紹介します。これには一定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。
1. 基礎知識の準備
奇数丸めと偶数丸めは、四捨五入ルールやバンカーズ四捨五入とも呼ばれ、計数保持方法は数値丸めルールです。 。統計的な観点から見ると、「奇数および偶数の丸め」は「丸め」よりも正確です。多数の演算では、丸め後の結果の一部が大きくなり、一部が小さくなるため、丸められた結果の平均誤差は次のようになります。 be はゼロになる傾向があります。四捨五入のように 5 つおきに桁上げする代わりに、結果が大きな数値に偏り、誤差が蓄積して系統誤差が生じます。 「奇数丸めを偶数丸め」により、丸め誤差による測定結果への影響を最小限に抑えます。
値の四捨五入 (値の四捨五入) - 特定の数値演算を実行する前に、元の値の最後の数桁を省略して、残りの最後の桁を調整して、最後の値が取得した値を元の値に最も近づける処理。
Infinity Infinity
NaN (Not a Number、非数値) は、コンピューター サイエンスにおける数値データ型の値の型であり、未定義または未定義を意味します。表現できない値。浮動小数点演算でよく使用されます。 NaN は、1985 年に IEEE 754 浮動小数点標準に初めて導入されました。浮動小数点数演算では、NaN と無限大の概念は異なりますが、浮動小数点数を使用して実数を表す場合、どちらも特別な値になります。無効な操作は、算術オーバーフロー (無限大を返す場合があります) や算術アンダーフロー (最小の一般値、特殊な値、ゼロなどを返す場合があります) とも異なります。 IEEE 754-1985 では、NaN は指数部がすべて 1 で小数部が非ゼロで表されます。 32 ビット IEEE 単精度浮動小数点数の NaN を例にとると、ビット単位の表現は次のようになります。 S111 1111 1AXX XXXX XXXX XXXX XXXX XXXX、S は符号ビットであり、符号ビット S の値は無関係です
Python で実行する正確な数値演算を実行する場合、通常、decmal
モジュールを使用して 10 進数 10 進数、コンテキスト算術コンテキスト パラメーター、およびシグナル信号情報を使用します
round()
を使用すると、小数点を四捨五入するときに、意図した丸めが行われないことがわかりました。その理由は、丸めルールが奇数および偶数の丸め (四捨五入) 方法を採用しているためです。 , integer 部分が奇数の場合は四捨五入、偶数の場合は丸め方法を使用し、このルールは 数値丸め
ルール
に属します。
2. quantize
quantize`(*exp* [,*rounding* [,*context* [,*watchexp* ] ] ] )
四捨五入後の最初のオペランドに等しい値を 2 番目のオペランドの指数で返します。
>>> Decimal('1.41421356').quantize(Decimal('1.000')) Decimal('1.414')
3. 丸めの実装
丸め後、最初のオペランドと等しく、2 番目のオペランドの指数を持つ値を返します。この exp の指数は、左側の数値の指数です。exponent
# 实现四舍五入的方法 >>> from decimal import Decimal, ROUND_HALF_UP >>> Decimal('0.375').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP) Decimal('0.38') >>> Decimal('0.125').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP) Decimal('0.13')
[関連する推奨事項: Python ビデオ チュートリアル ]
以上がPython での小数点以下の桁上げと丸めの紹介 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。