バイトを kb から mb から gb から tb に変換するアプリケーションを作成しようとしています。これが私がこれまでに持っているものです:
def size_format(b):
if b < 1000:
return '%i' % b + 'B'
elif 1000 <= b < 1000000:
return '%.1f' % float(b/1000) + 'KB'
elif 1000000 <= b < 1000000000:
return '%.1f' % float(b/1000000) + 'MB'
elif 1000000000 <= b < 1000000000000:
return '%.1f' % float(b/1000000000) + 'GB'
elif 1000000000000 <= b:
return '%.1f' % float(b/1000000000000) + 'TB'
問題は、アプリケーションを試してみると、小数点以下がゼロになった後にすべてが得られることです。例
size_format(623)
は「623B」を生成しますが、size_format(6200)
「6.2kb」を取得する代わりに「6.0kb」を取得しています。理由はありますか?