1. ホーム
  2. python

[解決済み] round() が正しく丸められないようです。

2022-06-04 06:11:26

質問

のドキュメントは round() 関数のドキュメントには、数値と丸める小数点以下の位置を渡すと書かれています。したがって、この関数は ということになります。

n = 5.59
round(n, 1) # 5.6

しかし、実際には、古き良き浮動小数点の奇妙さが忍び込んで、次のようになります。

5.5999999999999996

UI のために、私は 5.6 . インターネットで調べてみると、いくつかの のドキュメントを見つけました。 によると、これは私のPythonの実装に依存しているようです。残念ながら、これは私の Windows 開発マシンと、私が試したそれぞれの Linux サーバーの両方で発生しました。 こちらもご覧ください .

独自のラウンドライブラリを作成する以外に、これを回避する方法はないのでしょうか?

どのように解決するのですか?

保存の仕方はどうしようもありませんが、少なくとも書式設定は正しく動作します。

'%.1f' % round(n, 1) # Gives you '5.6'