[解決済み] 浮動小数点数を小数点以下第二位まで丸めるには?
質問
例えば
8.8333333333333339
で、これを
8.84
. Pythonでこれを達成するにはどうすればよいですか?
round(8.8333333333333339, 2)
与える
8.83
であって
8.84
. 私はPythonまたは一般的なプログラミングに新しいです。
文字列として出力し、その結果がさらに利用されるのは避けたいのですが。この問題の詳細については Tim Wilson の Python プログラミングのヒント。ローンと支払いの計算機 .
どのように解決するのですか?
8.833333333339
(または
8.833333333333334
の結果は
106.00/12
) を正しく小数点以下2桁に丸めたものは
8.83
. 数学的には,あなたが欲しいのは
天井関数
. Pythonの
math
モジュールのものは
ceil
:
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100) # -> 8.84
それぞれ、floor関数とceiling関数は一般に実数を小数点以下がゼロの最大または最小の整数に対応させます。したがって、小数点以下2桁で使用する場合は、まず10を掛けます。 2 を掛けます。 (または 100) を掛けて小数点を移動し、その後でそれを割って補正します。
を使いたくない場合は
math
モジュールを使いたくない場合は、私が書いたこの(最小限のテストしかしていない)実装を使うことができます。
def ceiling(x):
n = int(x)
return n if n-1 < x <= n else n+1
このことと、リンク先の ローンと支払いの計算機 問題を解決します。
サンプル出力から、彼らは
切り上げ
という、いわゆる天井機能の効果で、毎月の支払額が少なくなります。これは、毎月少しずつ
1
⁄
12
が支払われている。そのため、最終的な支払額は通常より少し少なくなり、残りの未払い額はわずか
8.76
.
通常の四捨五入を使用して、毎月の支払額を
8.83
となり、最終的な支払額はわずかに高い
8.87
. しかし、現実の世界では、人々は一般的に支払額が増えることを好まないので、各支払額を切り上げるのが一般的なやり方です - それはまた、貸主により早くお金を返すことにもなります。
関連
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] 10進数のrange()ステップ値を使用するには?
-
[解決済み] 除算を強制的に浮動小数点にするにはどうしたらいいですか?除算は0に切り捨てられ続けますか?
-
[解決済み] JavaScriptで浮動小数点数の精度を扱うには?
-
[解決済み] 数字を切り上げるには?
-
[解決済み] モジュール名を文字列で指定してインポートするには?
-
[解決済み】常に小数点以下2桁を表示する数値の書式設定
-
[解決済み] Python Empty Generator 関数
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonで小数点以下2桁に丸めるには?
-
[解決済み] round() が正しく丸められないようです。
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?