Ruby中的浮点格式序列

时间:2013-09-30 00:01:04

标签: ruby

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

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

我不理解这一点是3.2的目的。 谢谢你看看!

P.S。顺便说一句,weight变量最初以磅为单位定义。

2 个答案:

答案 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