Pythonで浮動小数点数を切り上げる方法をわかりやすく解説
Pythonのround()関数による四捨五入
Pythonには、数値を丸めるための組み込み関数 round() が用意されています。この関数は「丸めたい数値」と「丸める桁数」の2つの引数を受け取ります。第2引数を省略した場合は、最も近い整数に丸められます。
>>> round(1.7456)
2
>>> round(1.4756)
1
上記の例では、1.7456は2に、1.4756は1に丸められています。これは一般的な「四捨五入」の動作です。
0.5を加えて切り上げを実現する方法
常に切り上げたい場合は、丸める前に0.5を加えるというシンプルなテクニックが使えます。
>>> round(1.7456 + 0.5)
2
>>> round(1.4756 + 0.5)
2
このように、元の値に0.5を足してから round() を呼び出すことで、どちらの値も2という切り上げ結果が得られます。
math.ceil()を使った確実な切り上げ
より明示的かつ確実に切り上げを行いたい場合は、標準ライブラリの math モジュールにある ceil() 関数を使用するのがおすすめです。
>>> import math
>>> math.ceil(1.4756)
2
>>> math.ceil(-1.2)
-1
math.ceil() は、対象の数値以上で最小の整数を返すため、負の数に対しても意図どおりに動作します。また、コードの意図が明確になり、浮動小数点数特有の誤差の影響も受けにくいため、実務ではこちらの方法が推奨されます。
まとめ
- 四捨五入には組み込み関数
round()を使う - 0.5を加えてから
round()を呼ぶと切り上げになる - 確実な切り上げには
math.ceil()が便利
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて
-
Pythonでファイルに追記する方法をわかりやすく解説
Pythonで既存のファイルにデータを追加(追記)するには、ファイルを開く際にモードとして「a」(append=追記)を指定します。通常の「w」モードで開くとファイルの中身がすべて上書きされてしまうため、既存の内容を残したい場合は必ず「a」モードを使用しましょう。基本的な追記の書き方f = open(my_file.txt, a) f.write(Hello World) f.close()このコードでは、my_file.txt を追記モードで開き、ファイルの末尾に「Hello World」という文字列を追加しています。元の内容はそのまま保持され、新しいテキストが末尾に付け足されます。with