Python に浮動小数点数 (例: ) を含む変数があり、num = 24654.123
(Oracle の意味で) 数値の精度とスケール値を決定したいので、123.45678 は (8,5) を、12.76 は私を与えるはずです。 (4,2)など
str
私は最初に文字列表現を(または経由で)使用することを考えてrepr
いましたが、それらは大きな数では失敗します(ただし、ここでの問題は浮動小数点表現の制限であることを理解しています):
>>> num = 1234567890.0987654321
>>> str(num) = 1234567890.1
>>> repr(num) = 1234567890.0987654
編集:
以下、良かった点。明確にする必要があります。数値はすでに浮動小数点数であり、cx_Oracle を介してデータベースにプッシュされています。INSERT を実行して Oracle エラーを処理する以外に、対応するデータベース タイプに対して大きすぎる float を処理するために、Python でできる限りのことをしようとしています (レコードではなくフィールドの数値を処理したいためです)。時間)。map(len, repr(num).split('.'))
フロートの精度とスケールに最も近いと思いますか?