1の位置から四捨五入をする位置の指定に使う桁位置の数字を取得したい

実現したいこと

暗号通貨の売買をAPIで実現しようとトライしています。
暗号通貨を扱う上で、通貨によって取扱量の下限が設定されているようで、
例えば、BTC(ビットコイン)とETH(イーサリアム)の取引きであれば、最低取扱量は
0.00010000となっていて、0.00011000と入力してもエラーとなってしまいます。
他の例で、BTC(ビットコイン)とXRP(リップル)間の取引きであれば、最低取扱量は
1.00000000となっていて、1を下回る小数点以下の数字があるとエラーになります。

quantity = 3.08079692
があるとすると、

x = 0
after_round = round(quantity, x)
print(after_round)

LOT_SIZE = 1.00000000 # ←の場合、xに0を代入したい
LOT_SIZE = 0.00010000 # ←の場合、xに4を代入したい
LOT_SIZE = 0.00000001 # ←の場合、xに8を代入したい

この1のある位置を拾って関数round(quantity, x)のxにあたる四捨五入する桁位置の
数字が拾いたいです。

発生している問題・分からないこと

一応、わかる範囲でコードを書きましたが、結構長くなってしまいました。
他にいい方法はございますでしょうか?
ご指導、よろしくお願い致します。

該当のソースコード

Python

1quantity = 3.080796922LOT_SIZE = 0.000000103 4if LOT_SIZE == 1.00000000:5 after_round = round(quantity, 0)6elif LOT_SIZE == 0.10000000:7 after_round = round(quantity, 1)8elif LOT_SIZE == 0.01000000:9 after_round = round(quantity, 2)10elif LOT_SIZE == 0.00100000:11 after_round = round(quantity, 3)12elif LOT_SIZE == 0.00010000:13 after_round = round(quantity, 4)14elif LOT_SIZE == 0.00001000:15 after_round = round(quantity, 5)16elif LOT_SIZE == 0.00000100:17 after_round = round(quantity, 6)18elif LOT_SIZE == 0.00000010:19 after_round = round(quantity, 7)20elif LOT_SIZE == 0.00000001:21 after_round = round(quantity, 8)22else:23 pass24print(after_round) 25 26

試したこと・調べたこと

上記の詳細・結果

最初case文を考えましたが、Pythonにはcaseがないとのことでした。。

補足

特になし

コメントを投稿

0 コメント