3

勉強中に、理解できない構文に遭遇しました。

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

これについて私が理解していないことの1つは、の目的です3.2。ご覧いただきありがとうございます。

PSちなみに、weight変数はもともとポンドで定義されていました。

4

2 に答える 2

8

この%n.mf形式は、出力フィールド全体の幅がn文字位置であり、小数点の後に表示される桁数が であることを意味しm、必要に応じて数値の前に空白を埋めてフィールド全体を で完成させnます。0表示可能な小数点以下の桁数を にする必要がある場合、小数点の右側に s が埋め込まれmます。

したがって、23.12の形式の値は次の%8.3fように表示されますbb23.120(ここで、それぞれbは空白であり、実際には ではありませんb)。のフォーマット%8.1fbbbb23.1. のフォーマット%8.0fbbbbbb23.

フォーマットされた数値が要求されたフィールド全体の幅よりも多くの文字になる場合、フィールドは数値を収容するために大きくされるだけであり、切り捨てられないことに注意してください。%3.2f上記の例では、 forの形式で23.12が得られ23.12ます。

この%3.2f場合、フィールド幅は小数点以下の桁数で指定さ3れます。小数点以下の桁数はすでに文字位置を消費している2ため、この形式で印刷される浮動小数点数は、先行する空白なしで完全に印刷されます。またはまたはを使用しても同じ結果が得られます。ただし、この形式では、桁を正確に表示するために、必要に応じて常に小数点以下の桁数が切り捨てられるか、ゼロが埋められます。23%2.2f%1.2f%0.2f22

于 2013-09-30T00:06:15.270 に答える
0

%0.2f のように、必要な小数点以下の桁数を指定できます。

ここでの 2 は、小数点以下 2 桁だけを保持することを示しています。

以下に例を示します: スコア = 78.5431 puts "The average is %0.2f" % [score]

出力 => 平均は 78.54

于 2016-12-24T20:12:02.580 に答える