日々精進

新しく学んだことを書き留めていきます

pythonで四捨五入する

標準のround関数は銀行丸めなので、一般的な四捨五入と挙動が違う。 Decimal.quantizeを使う方法もあるらしいが、基本floatで扱いたいので以下のように自分で実装するのが一番良さそうだった。

def my_round(val, digit=0):
    p = 10 ** digit
    return (val * p * 2 + 1) // 2 / p

参考:

note.nkmk.me