获取准确的文件大小(兆字节)?

emu*_*rad 20 ruby

如何以MB为单位获取准确的文件大小?我试过这个:

compressed_file_size = File.size("Compressed/#{project}.tar.bz2") / 1024000

puts "file size is #{compressed_file_size} MB"
Run Code Online (Sandbox Code Playgroud)

但它砍掉了0.9并且显示了2 MB而不是2.9 MB

asa*_*aki 30

尝试:

compressed_file_size = File.size("Compressed/#{project}.tar.bz2").to_f / 2**20
formatted_file_size = '%.2f' % compressed_file_size
Run Code Online (Sandbox Code Playgroud)

一内胆:

compressed_file_size = '%.2f' % (File.size("Compressed/#{project}.tar.bz2").to_f / 2**20)
Run Code Online (Sandbox Code Playgroud)

要么:

compressed_file_size = (File.size("Compressed/#{project}.tar.bz2").to_f / 2**20).round(2)
Run Code Online (Sandbox Code Playgroud)

有关%字符串操作符的 更多信息:http ://ruby-doc.org/core-1.9/classes/String.html#M000207


顺便说一句:如果我使用base2计算,我更喜欢"MiB"而不是"MB"(参见:http://en.wikipedia.org/wiki/Mebibyte)


cam*_*cam 9

你正在做整数除法(它会丢掉小数部分).尝试除以1024000.0,所以ruby知道你想做浮点数学.