Djangoのテンプレートで浮動小数点数の小数点以下を丸めのイメージ画像

Djangoのテンプレートで浮動小数点数の小数点以下を丸め

  • 公開日:2019/01/31
  • 更新日:2019/01/31
  • 投稿者:n bit

Djangoのテンプレート内で浮動小数点数を扱う際にFloatFieldの値をそのまま出力すると小数点以下の桁数が多い時は見にくい。今回はそのような浮動小数点数の数値データの小数点以下を丸める(≒四捨五入)方法の解説です。

  • Python
  • Django

この記事は約 分で読めます。(文字)

Djangoのテンプレート内で浮動小数点数の丸め処理

Djangoのテンプレート内で浮動小数点数を表示させるときに小数点以下の桁数が多いときや、桁数が不揃いの場合、データ量が多いと一覧で見るのに向きません。

そのような時、小数点以下の桁数を揃えて人が見やすい一覧データに調整しておくことが大事です。

小数点以下の桁数を揃えるにはDjangoのテンプレート上で『偶数の丸め』を行って対応することができます。

偶数の丸め

「偶数の丸め」とは聞きなれない言葉かと思いますがその内容は別に難しいものではありません。偶数の丸めのルールは3つです。

  • 小数部が0.5より小さい場合は切り捨て
  • 小数部が0.5より大きい場合は切り上げ
  • 小数部が0.5の場合は結果が偶数になる方へ処理

四捨五入と大きくは変わりませんので統計分析のような厳密性を求められるシーンでない限り四捨五入と理解しておいても構いません。

浮動小数点数の丸め処理については下記のページで詳しく解説しています。詳しく知りたい方はご覧ください。

小数第一位で丸め処理

Djangoのテンプレート上で丸め処理を行うには浮動小数点数の値の後に『floatformat』をつけます。特に桁数を指定しなければ自動的に小数第一位で丸め処理を行ってくれます。

{{ value|floatformat }}
  • 3.14159
  • ↓:{{ value|floatformat }}
  • 3.1

この指定の場合、小数第一位で丸め処理を行う条件があり、その条件は『小数部がある場合に限る』です。

  • 3.00000
  • ↓:{{ value|floatformat }}
  • 3:小数部が無かったので整数で出力

小数第二位で丸め処理

小数第二位以下で丸め処理を行う場合は『floatformat』の後に桁数を数値で指定しましょう。

{{ value|floatformat:2 }}
  • 3.14159
  • ↓:{{ value|floatformat:2 }}
  • 3.14

『floatformat』の後に桁数を指定した場合は、小数部が無くても浮動小数点数で出力されます。

  • 3.00000
  • ↓:{{ value|floatformat:2 }}
  • 3.00:小数部が無くても浮動小数点数で出力。

小数第二位で丸め処理(小数部がある場合に限る)

小数第二位以下で丸め処理を行う条件を『小数部がある場合に限る』にする場合は『floatformat』の後に付ける数値に『-』を付与して指定しましょう。

{{ value|floatformat:2 }}
  • 3.14159
  • ↓:{{ value|floatformat:-2 }}
  • 3.14

小数部がある場合は通常の動作です。小数第二位で丸め処理が行われます。

小数部が無い場合は整数が出力されます。

  • 3.00000
  • ↓:{{ value|floatformat:-2 }}
  • 3:小数部が無かったので整数で出力

つまり、最初の『floatformat』後の数値を指定しない場合は、『{{ value|floatformat :-1 }} 未処理は小数第一位で丸め処理(小数部がある場合に限る)』と同じ指定をしていることになります。

浮動小数点数を整数に丸め

浮動小数点数を整数に丸め処理を行う場合は『floatformat』の後に『0』を数値で指定します。

{{ value|floatformat:0 }}
  • 3.14159
  • ↓:{{ value|floatformat:0 }}
  • 3

今日のdot

Djangoのテンプレート内で浮動小数点数を表示させる際、FloatFieldの値をそのまま出力すると小数点以下の桁数が多い時は見にくいです。浮動小数点数の数値データは小数点以下で丸め処理を行いユーザの視認性を高めましょう。

{{ value|floatformat:2 }}