ショウガ :
どうすればフロアはnumpyの0.2の最も近い倍数にできますか?
例えば、私はこれを持っています:
0.2 * np.floor(xi / 0.2)
それは、時間などのほとんどの作品
>>> xi = 9.4
>>> 0.2 * np.floor(xi / 0.2)
9.4
しかし、そのような9.6のように、いくつかの数字で失敗します
>>> xi = 9.6
>>> 0.2 * np.floor(xi / 0.2)
9.4
私は、以前の計算は9.4を返すことを期待します。
私はこれをどのように修正することができますか?
グジェゴシSkibinski:
なお、 - float形式からです9.6/0.2
戻ります47.9999999...
。
いくつかは、ここで丸めとトリックが行います。
round(0.2*np.floor(round(xi / 0.2,2)),1)
インナー丸めは必ず精度を失うことはありません作るために、小数点以下2桁で、まだ床に何かを持っています。外側のラウンドは-あなたが適切に丸めていますので0.2
(例えばとしません9.6000...1
)