小数点以下の簡単な求め方
2023-09-28 17:11:52
質問
浮動小数点数の小数点以下の桁数を簡単に調べる方法、または統合された関数はありますか?
数値は文字列から解析されるので、1つの方法は'.'記号の後の桁を数えることですが、それは私にはかなり不器用に見えます。必要な情報を
float
または
Decimal
オブジェクトを作成できますか?
解決方法 (もちろん、そのうちの一つです :) )
私は私の問題を助けるためにpythonのdecimal.Decimalクラスを使用することを選択しました。
e = abs(Decimal(string_value).as_tuple().exponent)
注意:これはDecimalを構成するパラメータがfloatではなくstringである場合のみ動作します(これは浮動小数点数の不正確さにつながります)。
他のすべての貢献にも大いに感謝します。
どのように解決するのですか?
他の人が言ったことの繰り返しになりますが (私がすでにタイプアウトしてしまったので!)、浮動小数点数の場合、10進数と2進数の表現の違いから、このような値が意味を持つかどうかさえわかりません。
の場合は
decimal.Decimal
オブジェクトを使用すると、指数を取得することができます。
as_tuple
メソッドを使うことができます。
sign
,
digits
そして
exponent
属性があります。
>>> d = decimal.Decimal('56.4325')
>>> d.as_tuple().exponent
-4
>>> d = decimal.Decimal('56.43256436')
>>> d.as_tuple().exponent
-8
よりも大きい場合を除き、指数の否定は小数点以下の桁数です。
0
.
関連
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] 小数の値を小数点以下2桁まで表示するには?
-
[解決済み] 10進数以降の桁をf文字列で固定する。
-
[解決済み】pythonでfloatをintegerに変換する最も安全な方法?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] サブフォルダからのインポートモジュール