ホームページ > バックエンド開発 > Python チュートリアル > Python2とPython3の丸めの違いの紹介

Python2とPython3の丸めの違いの紹介

巴扎黑
リリース: 2017-08-21 14:44:51
オリジナル
2022 人が閲覧しました

round() メソッドは、n 桁に四捨五入した値の小数点を返します。

構文

以下はround()メソッドの構文です:

round( 小数点以下何桁保持するかを示す数値

戻り値

このメソッドは値の小数点を返します整数部分を保持すると言われています)。ngigits<0 は整数部分を四捨五入するために使用され、返される結果は浮動小数点数です。

次の例は、round() メソッドの使用を示しています

#!/usr/bin/python2
print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)
ログイン後にコピー

上記のプログラムを実行すると、次の結果が得られます:

round(80.23456, 2) : 80.23
round(100.000056, 3) : 100.0
round(-100.000056, 3) : -100.0
ログイン後にコピー

Python3 と Python2 のバージョンの違い

Python2 は、round(0.5)=1、round(-0.5) のように、x を 0 から最も近い倍数に丸めます。 =-1;

Python3 次に、x は、round(0.5)=0、round(1.5)=2.0、round(2.5)=2.0 のように、最も近い偶数の倍数に丸められます

コード:

#!/usr/bin/python2
print round(2.635, 2)
print round(2.645, 2)
print round(2.655, 2)
print round(2.665, 2)
print round(2.675, 2)
ログイン後にコピー

出力結果:

2.63
2.65
2.65
2.67
2.67
ログイン後にコピー

round メソッドの欠陥

上記の例から、round の丸め方法が私たちが理解しているものと異なっていることがわかります。実際、これは主に 10 進数の変換に起因します。入力中にコンピュータの内部バイナリに変換されますが、この問題を解決するのは精度が限られているため不可能であり、解決する必要はありません。

Python の 10 進数モジュールを使用して、この問題を解決できます。

丸める必要がない場合は、最もよく知られている print("%.2f" % 2.675) メソッドの使用を検討することもできます。

以上がPython2とPython3の丸めの違いの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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