Ruby中的浮点格式序列

mac*_*ean 2 ruby

我在学习期间遇到了一些我不理解的语法.

puts "He is %d (%3.2f in floating point terms) pounds heavy." % [weight, weight] 
Run Code Online (Sandbox Code Playgroud)

我不了解这一点的目的是3.2.谢谢参观!

PS顺便说一下weight变量最初是以磅为单位定义的.

lur*_*ker 7

%n.mf格式是指整个输出场宽度是n字符位置,和小数点后示出位置的数量是m,随着数量的前空白填充必要时用的完成整个字段n.0如果需要,使用s 填充小数点以使可见小数位数达到m.

因此23.12格式为的值%8.3f将显示为bb23.120(其中每个b都是空白,而不是真正的a b).一种格式%8.1f会产生bbbb23.1.一种格式%8.0f会给bbbbbb23.

请注意,如果格式化的数字将是比请求的整个字段宽度更多的字符,那么该字段将变得更大以容纳该数字,因此它不会被截断.在上面的例子中,%3.2ffor 的格式23.12会给出23.12.

对于%3.2f情况下,字段宽度给定为32小数点后的数字.由于2小数位加上小数点已经消耗了3字符位置,因此使用此格式打印的任何浮动都将完整打印,没有前面的空白.你用%2.2for %1.2f或得到相同的结果%0.2f.但是,2如果需要,此格式将始终为小数位提供截断或零填充,以使其成为完全2可见的数字.