Pythonで小数点以下の桁数を指定する方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonで小数点以下の桁数を指定する方法について現役エンジニアが解説しています。数値全体の桁数や小数点以下の桁数を指定するにはformat関数やf文字列を使い置換フィールド({})に書式を指定します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonで小数点以下の桁数を指定する方法について解説します。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonで小数点以下の桁数を指定する方法について詳しく説明していくね!
お願いします!
桁数を指定して出力する方法
桁数を指定して出力する方法は、format関数を使う方法や、f文字列を使用する方法があります。
ここではそれぞれの方法の書き方や特徴を学んでいきましょう。
formatを使用する方法
formatは出力の際に、コード内で定義された変数を代入する関数です。
formatで使用する置換フィールド ({} のこと) 内に : から始まる書式指定を行うことで、桁数を指定して数値を出力できます。
まずは何も指定しない場合を見てみましょう。
num = 123.456 print('{}'.format(num)) # => 123.456
次に桁数を10桁に指定してみます。
置換フィールドを {:10} とすることで、10桁で出力されます。
num = 123.456 print('{:10}'.format(num)) # => 123.456
分かりづらいですが、先頭に3文字分の余白が追加されて表示されています。
これは「整数部3桁 + 小数点を意味するドットで1桁 + 小数部3桁」の合計 7桁の数値に対して、3桁分の余りがあります。
そのため、3文字分の余白として表示されています。
なお、実際の数値よりも少ない桁数を指定してもそのまま表示されるので注意しましょう。
num = 123.456 print('{:2}'.format(num)) # => 123.456
f文字列を使用する方法
Python3.6以降では f文字列 (f-string) という表示方法が使用可能です。
f”もしくは f”” で囲むと、{} 内に変数などを指定できます。
num = 123.456 print(f'{num}') # => 123.456
f文字列でも同じように桁数の指定ができます。
num = 123.456 print(f'{num:10}') # => 123.456 print(f'{num:2}') # => 123.456
小数点以下の桁数を指定して出力する方法
formatを使用する方法
小数点以下の桁数を指定するには、置換フィールドを {:.1f} のように指定します。
ドット(.)以降が小数点部の桁数を意味していて、{:.1f} であれば小数点1桁まで出力されます。
num = 123.456 print('{:.1f}'.format(num)) # => 123.5
小数点8桁までで、123.456を123.45600000のようにゼロ埋めして表示したい場合には {:.08f} と指定します。
num = 123.456 print('{:.08f}'.format(num)) # => 123.45600000
f文字列を使用する方法
小数点以下の桁数指定でも、同様にf文字列が使用可能です。
num = 123.456 print(f'{num:.1f}') # => 123.5 print(f'{num:.08f}') # => 123.45600000
実際に書いてみよう
整数部は4桁でゼロ埋めなし、小数部は6桁でゼロ埋めありで表示してみましょう。
一見 {:4.06f} のように指定するとできそうに思えますが、これは間違いなので注意してください。
最初の数値の4は全体で何桁必要かを指定するものなので、今回の例だと 11 (整数部4桁 + 小数点1桁 + 小数部6桁)が正しい指定です。
num = 12.345 print('{:11.06f}'.format(num)) # => 12.345000 print(f'{num:11.06f}') # => 12.345000
分かりづらいので、整数部もゼロ埋めしてみましょう。
num = 12.345 print('{:011.06f}'.format(num)) # => 0012.345000 print(f'{num:011.06f}') # => 0012.345000
要求通りに整数部で4桁、小数部で6桁(ゼロ埋め)の表示ができてます。
執筆してくれたメンター
メンター稲員さん
フリーランスエンジニア。 経験言語:Ruby、Rails、Python、C/C++、Java、Perl、HTML/CSS3、JavaScript、CoffeeScript、Node.js。 |
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!