[解決済み】pythonでfloatをintegerに変換する最も安全な方法?
2022-04-06 14:11:09
質問
Pythonのmathモジュールには、次のような便利な関数があります。
floor
を追加しました。
ceil
. これらの関数は浮動小数点数を受け取り、その下または上にある最も近い整数を返します。しかし,これらの関数は答えを浮動小数点数として返します。例えば
import math
f=math.floor(2.3)
現在
f
が返されます。
2.0
丸め誤差を発生させずに(例えばfloatが1.99999の場合)、floatから整数を取り出す最も安全な方法は何でしょうか、あるいは全く別の関数を使うべきでしょうか?
どのように解決するのですか?
浮動小数点数で表現できる整数はすべて厳密な表現を持っています。だから、安全に
int
を実行します。非正確な表現は、分母が2の累乗でない有理数を表現しようとした場合のみ発生します。
これがうまくいくのは、まったく些細なことではないのです。IEEE浮動小数点演算の特性として、問題の数値の大きさが十分に小さければ、int∘floor = ⌋となりますが、 int(floor(2.3)) が 1 になるかもしれない、異なる表現が可能です。
引用元 ウィキペディア ,
絶対値が2以下の任意の整数 24 は単精度フォーマットで正確に表現でき,絶対値が2以下の整数は 53 は倍精度フォーマットで正確に表現できる。
関連
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] JavaScriptで文字列を整数に変換する方法は?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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を使ったオフィス自動化コード例
-
Python関数の高度な応用を解説
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python 3 の sys.maxint とは何ですか?