Ruby中的Sprintf

gmi*_*ile 4 ruby printf rounding

一个快速的问题.我在写:

puts "%.3f %.4f %.5f" % [3.998877, 3.998877, 3.998877]
Run Code Online (Sandbox Code Playgroud)

并获得以下输出:

3.999 3.9989 3.99888
Run Code Online (Sandbox Code Playgroud)

sprintf简单地围绕数字.如何限制舍入?

cld*_*ker 7

>> 3.998877.to_s[/^\d+\.\d{3}/].to_f
=> 3.998
>> 3.998877.to_s[/^\d+\.\d{4}/].to_f
=> 3.9988
Run Code Online (Sandbox Code Playgroud)