2017-08-01 18 views
1

floatsの書式設定と小数点以下桁数の制限に関する多くの質問がありましたが、変数secondsの値を常にSS.mmmとしたいPython3.x:浮動小数点数を2桁に小数点以下3桁に小数点以下を設定する

私は

t = int(input('time?: ')) 
seconds = (t/1000) % 60 
minutes = (t // (1000 * 60)) % 60 
hours = (t // (1000 * 60 * 60)) % 24 

を持って、私はそれが常にはHHに追従するようにhoursminutes、およびsecondsを印刷したい:MM:SS.mmm

私の試み:

print('{}:{}:{}'.format("%02d" % hours, "%02d" % minutes, ("%.3f" % seconds).zfill(2))) 

私はHH:MM:S.mmmを取得することになります。先行ゼロがあっても2桁の数字が必要です。

+1

あなたは[this](https://pyformat.info/)を読むことをお勧めします。 – Carlos

答えて

3

あなたは.format()で次の操作を行うことができる必要があります:

特に
print('{:0>2d}:{:0>2d}:{:06.3f}'.format(hours,minutes,seconds)) 

0>2d06.3f全体フロート表現は6でなければならないことを意味し、また、長さ2のように、整数hoursminutesを強制的に('.'を含む)長い文字で、小数点以下3桁がピリオドの右側に付きます。

関連する問題