タグ

pythonとdecimalに関するkoma_gのブックマーク (3)

  • Pythonで小数・整数を四捨五入するroundとDecimal.quantize | note.nkmk.me

    四捨五入ではなく小数点以下の切り捨て・切り上げについては以下の記事を参照。 関連記事: Pythonで小数点以下を切り捨て・切り上げ: math.floor(), math.ceil() NumPyやpandasのround()については以下の記事を参照。 関連記事: NumPy配列ndarrayを四捨五入・偶数丸めするnp.round 関連記事: pandasで四捨五入・偶数丸め・切り捨て・切り上げ 組み込み関数round() 組み込み関数としてround()が提供されている。モジュールをインポートすることなく使える。 組み込み関数 - round() — Python 3.12.0 ドキュメント 第一引数に元の数値、第二引数ndigitsに桁数(何桁に丸めるか)を指定する。 小数を任意の桁数に丸める 浮動小数点数floatに対してround()を使う例を示す。 第二引数を省略すると整数

    Pythonで小数・整数を四捨五入するroundとDecimal.quantize | note.nkmk.me
  • プログラミングにおける数値計算はワナがいっぱい - Qiita

    普通に考えると「0.3」ですが、実際には0.3にはなりません。 正解は「0.30000000000000004」です。(値は環境によって変わる可能性があります) 数値計算の誤差を気にしない場合は問題ないのですが、そこそこ正確に数値計算を行う場合は、色々と工夫が必要です。 なので、この記事では小数計算の誤差を回避する方法についてまとめたいと思います。!(^^)! 言語はPythonなので悪しからず、、 そもそもコンピュータにおける小数点の扱いについて まず、前提として2進数における小数点の扱いについて解説します。10進数の小数を2進数に変換するためには、小数部分のみを2倍して、その結果の整数部分を使います。 例えば、「0.875」を2進数に変換する方法は下記となります。 0.875 * 2 = 1.75 (整数部分が1) # 小数部分の0.75のみ2倍する 0.75 * 2 = 1.5 (整

    プログラミングにおける数値計算はワナがいっぱい - Qiita
  • [Python] 少数を含む金額計算を正確に行う(decimalモジュールの利用) - YoheiM .NET

    こんにちは、@yoheiMuneです。 最近はシステムトレードのプログラムを書いていて、金額計算などで少数を正確に扱う必要があり、decimalモジュールを利用しました。今日のブログではそのDecimalの使い方をブログに残したいと思います。 目次 decimalモジュールとは decimalモジュールは、少数を含む数値を正確に表現したり計算したりすることに使えるモジュールです。 パソコンでは数値を2進数で表現しますが、2進数では0.1という表現(1の10分の1)を正確に表すことができません。 num = 1.1 print(type(num)) # <class 'float'> => float(浮動点少数で扱っている) 参考:1より小さい数を含む二進数表現 なんでもない数値を扱うときは、2進数で表現できない数値の誤差は気にしないのですが、お金とかを扱う場合には正しく扱いたいものです。

    [Python] 少数を含む金額計算を正確に行う(decimalモジュールの利用) - YoheiM .NET
  • 1