小数点以下を四捨五入して整数部だけ表示したい

5月 23rd, 2017

タイマーをつけたはいいけど、残り時間が見えないと使っていて不便。

というわけで、後何秒か尋ねると教えてくれるようにした。けど・・・うううん。

datetimeで時間を取得し、total_seconds()で差を秒数に変えると、小数点以下がずらずらと出て来てしまう。float型で取得するので、そのままではstr型データと混ぜて表示ができない。

とりあえず例えば、
sa=4.3908

みたいな数字があるとして、小数点以下四捨五入は、roundでできる。後ろの「0」を1や2や・・・と変えれば、どの桁で四捨五入するかを変更できる。今回は、小数点以下は不要なので、

n=round(sa,0)

とした。これで小数点以下一桁を四捨五入してくれる。ところが、このnの中身は、4.0。・・・あーえーうーー、その小数点以下の「0」は不要なんだけど、python君。

「残り4.0秒です」

とか答えて欲しくない。で、仕方が無いので、int化→更にstr化することにした。

print (‘残り時間は、’+str(int(n))+’秒です’)

これで、「残り時間は、4秒です」と答えてくれるようになった。

いまいち格好よろしくないような気もするけど、まあ、いいかあ・・・

関連記事

  1. リスト全ての要素の改行(’\n’)を削る
  2. pythonの「or」はちょっとくせ者っぽい
  3. 変数のidや型をprint文で表示させる
  4. printでの「,」と「+」
  5. クラスの継承を試してみた
  6. 複数リストをループさせた時、ループカウントを得る
  7. オブジェクト指向と大格闘2(無理矢理使ってみる)
  8. 他のクラスからインスタンス変数って使えるんだね

Comments are closed.