3

我在学习过程中遇到了一些我不明白的语法。

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

我对此不了解的一件事是3.2. 谢谢参观!

PS 顺便说一下,这个weight变量最初是用磅定义的。

4

2 回答 2

8

%n.mf格式表示整个输出字段宽度为n字符位置,小数点后显示的位数为m,如果需要,在数字前填充空白以完成整个字段n。如果需要,小数点用0s 填充以使可见小数位数达到m.

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

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

对于这种%3.2f情况,字段宽度32小数点后的数字一样。由于2小数位加上小数点已经占用了3字符位置,因此使用此格式打印的任何浮点数都将完整打印,前面没有空格。%2.2f使用or%1.2f或会得到相同的结果%0.2f。但是,如果需要,此格式将始终给出2小数位截断或零填充,以使其完全2可见数字。

于 2013-09-30T00:06:15.270 回答
0

我们可以像这样指定我们想要的小数位数:%0.2f。

这里的 2 表示我们只想保留两位小数。

这是一个例子: score = 78.5431 puts "The average is %0.2f" % [score]

输出 => 平均值为 78.54

于 2016-12-24T20:12:02.580 回答