1. ホーム
  2. python

[解決済み] Pythonで数値を有効数字に丸める方法

2022-03-06 14:54:32

質問

UIで表示するために、浮動小数点以下の数値を丸める必要があります。

1234 -> 1000

0.12 -> 0.1

0.012 -> 0.01

0.062 -> 0.06

6253 -> 6000

1999 -> 2000

Pythonのライブラリを使ってこれを行う良い方法はありますか、それとも自分で書かなければなりませんか?

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

負の数を使って整数を丸めることができる。

>>> round(1234, -3)
1000.0

このように、最上位桁だけが必要な場合。

>>> from math import log10, floor
>>> def round_to_1(x):
...   return round(x, -int(floor(log10(abs(x)))))
... 
>>> round_to_1(0.0232)
0.02
>>> round_to_1(1234243)
1000000.0
>>> round_to_1(13)
10.0
>>> round_to_1(4)
4.0
>>> round_to_1(19)
20.0

1より大きい場合はfloatをintegerにするなどの配慮が必要でしょう。