pythonでround関数を使用する方法

ラウンド関数は非常に単純で、浮動小数点数を概算し、小数点以下数桁を保持します。といった

round(10.0/3,2)3.33round(20/7)3

最初のパラメーターは浮動小数点数であり、2番目のパラメーターは予約された小数点以下の桁数です。オプションで、書き込まれない場合、デフォルトで整数として予約されます。

このような単純な機能でどのような落とし穴がありますか?

1、 ラウンドの結果は、Pythonバージョンに関連しています

python2とpython3の違いを見てみましょう。

$ python
Python 2.7.8(default, Jun 182015,18:54:19)[GCC 4.9.1] on linux2
Type "help","copyright","credits" or "license"for more information.round(0.5)1.0
$ python3
Python 3.4.3(default, Oct 142015,20:28:29)[GCC 4.8.4] on linux
Type "help","copyright","credits" or "license"for more information.round(0.5)

pythonのドキュメントを読むと、次のように書かれています。

python2.7のドキュメントでは、round()の終わりに、「値は10の最も近い倍数からn桁を引いたものに丸められます。2つの倍数が等しく近い場合、丸めは0から離れて行われます。」と記載されています。前の端に近い方の端に保ちます(6に丸められます)。距離が両端と同じである場合は、0から遠い側に保ちます。したがって、round(0.5)は約1になり、round(-0.5)は約-1になります。

しかし、python3.5のドキュメントでは、ドキュメントは「値は10の累乗からn桁を引いたものに最も近い倍数に丸められます。2つの倍数が等しく近い場合、丸めは偶数の選択に向けて行われます」になります。 、偶数側に予約されます。たとえば、round(0.5)とround(-0.5)は0に保持され、round(1.5)は2に保持されます。

したがって、py2からpy3に移行されるプロジェクトがある場合は、ラウンドに注意してください(もちろん、/と//、印刷、その他の代替ライブラリにも注意してください)。

**2、 特別な番号のラウンドの結果はあなたが望むものではないかもしれません。 ****

round(2.675,2)2.67

python2とpython3のドキュメントは両方とも同じ栗を引用しています。元のテキストは次のように述べています。

Note
The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected
2.68. This is not a bug: it’s a result of the fact that most decimal fractions can’t be represented exactly as a
float. See Floating Point Arithmetic: Issues and Limitations for more information.

簡単に言えば、round(2.675、2)の結果は、python2または3のどちらから見ても、結果は2.68になり、2.67になるはずです。なぜですか。これは、浮動小数点数の精度に関連しています。マシン内の浮動小数点数は、1と0の文字列に変換された後、無限の桁数になる可能性があり、マシンはすでに切り捨て処理を行っているため、正確に表現されない可能性があることがわかっています。その場合、マシンに格納されている2.675の数は、実際の数よりもわずかに小さくなります。この少しだけ2.67に少し近づくので、小数点以下2桁を保持すると2.67になります。

上記。正確さの要件がない限り、round()関数の使用は避けてください。概算計算には他のオプションがあります。

math.ceiling(天井分割)など、数学モジュールの一部の関数を使用します。

Pythonには独自の分割可能機能があり、python2は/、3は//であり、div関数もあります。

"%.2f"%値のように、文字列のフォーマットを切り捨てることができます(小数点以下2桁を保持し、文字列に変換します。..浮動小数点数を使用する場合は、float()を使用してください)。

もちろん、浮動小数点数の精度要件が非常に高い場合は、嘚瑟馍を使用してください。間違っているかどうかにかかわらず、decimalモジュールを使用してください。

コンテンツの拡張:

round(number,num_digits)

数値丸める数値。

Num_digitsで指定された桁数は、この数に応じて四捨五入されます。

注釈

x=1.343671234
print x
print round(x,1)
print round(x,2)
print round(x,3)

出力は次のとおりです。

1.343671234
1.3
1.34
1.344

これまで、pythonでround関数を使用する方法に関するこの記事を紹介しました。より関連性の高いPython round関数の使用法の概要コンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後もZaLouをサポートしていただければ幸いです。 .Cn!

Recommended Posts

pythonでround関数を使用する方法
Pythonでzip関数を使用する方法
pythonでformat関数を使用する方法
PythonでSQLiteを使用する方法
およびおよびまたはPythonでの使用方法
pythonでid関数を実行する方法
pythonでアシスタントを実行するコードを使用する方法
ダウンロードしたモジュールをpythonでインストールする方法
パイソンタプルの使い方
Pythonでのパッケージの導入を理解する方法
Pythonのフィルター機能の使い方
pythonのヘルプ機能の使い方
ubuntuでhanlpを使用する方法
Pythonがメール機能を実装する方法
pythonコードでラップする方法
pythonプログラムを保存する方法
Pythonで括弧を省略する方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
PythonでExcelを読む方法
pythonでエラーを表示する方法
pythonでreturnを書く方法
Pythonがタイマー機能を実装する方法
pythonモジュールを表示する方法
Pythonで変数を理解する方法
pythonで変数をクリアする方法
pythonで円の領域を見つける方法
pythonでキャッシュファイルを削除する方法
Pythonでサードパーティモジュールを導入する方法
pythonでnull値を表す方法
pythonでテキストファイルを保存する方法
PYTHONを使用してニュース記事をクロールする方法
pythonでwinプログラムを書く方法
Pythonでサードパーティモジュールをインストールする方法
pythonでエラーをカスタムキャッチする方法
pythonでtryステートメントを書く方法
Pythonでプライベート属性を定義する方法
Pythonでカスタムモジュールを追加する方法
Pythonでグローバル変数を理解する方法
インストールされているモジュールをpythonで表示する方法
Python初心者はライブラリの使い方を学びます
Pythonタイムモジュールを学ぶ方法
さまざまなシステムでのPythonopenメソッド
pythonで辞書を並べ替える方法
pythonで背景音楽を追加する方法
pythonで相対パスを表す方法
pythonでのadbの機能は何ですか
UbuntuでTensorFlow使用環境を構成する方法
Pythonの結合関数
Pythonのインターフェースに基づいてプログラミングする方法
ubuntuサーバー環境にpythonをインストールする方法
Pythonゲームで重力をシミュレートする方法
Pythonでの歩留まりを理解するための記事
Ubuntuシステムでdpkgコマンドを使用する方法
win10でubuntuシステムを開く方法
コマンドラインからpythonを入力する方法
pythonでコード自動プロンプトを設定する方法
pythonを使用してhostsファイルを切り替える方法
pythonでゲームを書く方法を教えてください
pythonでファイルとディレクトリを削除する方法
ubuntuでのHanlpの使用の概要