ホームページ > バックエンド開発 > Python チュートリアル > Python での小数点以下の桁上げと丸めの紹介 (コード付き)

Python での小数点以下の桁上げと丸めの紹介 (コード付き)

不言
リリース: 2019-04-01 11:13:23
転載
3929 人が閲覧しました

この記事では、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート