2016-08-14 13 views
-2

に上向きに5を丸め、私は以下の丸め動作を見ている:は、Python 3.5でPythonの

>>> round(7.55, 1) 
7.5 # expected to round up to 7.6 

>>> round(7.45, 1) 
7.5 # this is fine 

たぶん私の直感は間違っているが、私は7.555の100分が7.6に上向きに丸めることを期待しています。 Python 3の標準的な動作は、私のデータの期待と一致しません。私は明らかにこの目標を達成するために標準roundメソッドを超える何かが必要です。この現象を起こす方法はありますか?

+0

これは間違いなく精度の結果であるはずです。 –

+0

私はnumpyのround()メソッドを使って、あなたが望む動作を達成するのに役立つと思います。ここの人々の答えが正しいことを考えれば、それはPythonのデフォルトラウンド関数で期待される動作です。 – d4vsanchez

+0

これはなぜ閉鎖されましたか?この質問は重複していません。私は特定の動作を期待しており、標準的な 'round'関数ではそれを取得しません。私はその行動を得る方法を尋ねています。 – jumbopap

答えて

2

精度の問題も、この文脈でroundの偶数/奇数の動作を認識することに加えて:組み込み)(丸支持タイプ、値が10の最も近い倍数に丸められについて

電力からndigitsを差し引く。 2つの倍数が等しく接近している場合は、偶数選択に向かって丸めが行われます(たとえば、丸(0.5)と丸(-0.5)の両方が0、丸(1.5)が2)。戻り値は、1つの引数で呼び出された場合は整数で、そうでない場合はnumberと同じ型です。フロートは、驚くべきことができるため

4

https://docs.python.org/2/library/functions.html#round

注ラウンドの動作():例えば、ラウンド(2.675、2)予想2.68の代わりに2.67を与えます。これはバグではありません。大部分の小数部分を浮動小数点として正確に表すことはできません。詳細については、「浮動小数点演算:問題と制限」を参照してください。