我在学习期间遇到了一些我不理解的语法。
puts "He is %d (%3.2f in floating point terms) pounds heavy." % [weight, weight]
我不理解这一点是3.2
的目的。
谢谢你看看!
P.S。顺便说一句,weight
变量最初以磅为单位定义。
答案 0 :(得分:7)
%n.mf
格式表示整个输出字段宽度为n
个字符位置,小数点后显示的位置数为m
,如果需要,可以使用n
完成整个字段前面的空白填充。如果需要,使用0
s将小数点右,以使可见小数位数达到m
。
因此格式为23.12
的值%8.3f
将显示为bb23.120
(其中每个b
为空白,而不是b
)。格式为%8.1f
会产生bbbb23.1
。格式为%8.0f
会给bbbbbb23
。
请注意,如果格式化的数字将是比请求的整个字段宽度更多的字符,那么该字段将变得更大以容纳该数字,因此它不会被截断。在上面的示例中,%3.2f
的{{1}}格式会给23.12
。
对于23.12
情况,字段宽度为%3.2f
,小数点后面有3
个数字。由于2
小数位加上小数点已经消耗2
个字符位置,因此使用此格式打印的任何浮动都将完整打印,没有前面的空白。您可以使用3
或%2.2f
或%1.2f
获得相同的结果。但是,如果需要,此格式将始终为%0.2f
小数点提供截断或零填充,以使其完全2
个可见数字。
答案 1 :(得分:0)
我们可以指定我们想要的小数位数:%0.2f。
这里的2表示我们只想保留两位小数。
这是一个例子: 得分= 78.5431 把“平均值是%0.2f”%[得分]
输出=>平均值为78.54