str型をfloat型に変換すると、文字数が増える

実現したいこと

小数点以下3ケタまでにしたいが、増えてしまいます。

151.671 151.651 151.701
と本来はなってほしいですが、

151.671 151.65099999999998 151.701
となってしまいます。

何がおかしいのでしょうか
みた方が早いと思いますので、コード→結果→前提の順で記載します。

該当のソースコード

python

1x = 151.67168989437898493880 2sell = str(x)[:7] #売り注文価格(この値段で売却する)3buy1 = float(buy)-0.02 #買い価格(この値段になったら買いたい)4buy2 = float(buy)+0.03 #損切り価格(この値段になったら買って手放したい)

発生している問題・エラーメッセージ

151.671 151.65099999999998 151.701 #151.671 151.651 151.701 と本来はなってほしいです

前提

値段は全て、小数点以下3桁に設定する必要があります。

ある数 x(十数桁) を自動取得して、最初の7文字だけ切り取って売る値段に設定し、売る値段の
+0.02円を決済価格(買い戻す値段)
-0.03円を損切り値と設定します。

sell1 の後ろに[:7]をつければ解決するのですが、
どう解決しますかという質問ではなく
なぜ小数点以下3桁にならないのか、という質問になります。

補足情報(FW/ツールのバージョンなど)

mac OS
python

コメントを投稿

0 コメント