8

Ruby で float を 10 進数を含めて正確に 4 桁にフォーマットしようとしています。

例えば:

1 => 01.00
2.4 => 02.40
1.4455 => 01.45

現在、フロートを次のようにフォーマットしようとしています。

str_result = " %.2f " %result

これにより、小数点以下の桁数が 2 に制限されます。

私はまた知っています:

str_result = " %2d " %result

これは正常に に変わりますが、小数点以下の桁数が失わ1れます。01

私はこれらを次のように組み合わせようとしました:

str_result = " %2.2f " %result

明らかな効果はありません。と同じ結果になり%.2fます。

Ruby に強制的に文字列をこの 4 桁の形式にフォーマットさせる方法はありますか?

4

1 に答える 1

11

使用できますsprintf('%05.2f', value)

重要なのは、形式がwidth . precisionであるということですwidth。これは、整数部分だけでなく、数値全体の最小幅を示します。

def print_float(value)
  sprintf('%05.2f', value)
end
print_float(1)
# => "01.00" 
print_float(2.4)
# => "02.40" 
print_float(1.4455)
# => "01.45" 
于 2013-07-03T02:48:08.037 に答える