8

我正在尝试将 Ruby 中的浮点数格式化为四位数,包括小数点。

例如:

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

现在,我正在尝试按如下方式格式化浮点数:

str_result = " %.2f " %result

这成功地将小数位限制为两位。

我也知道:

str_result = " %2d " %result

哪个成功变成101但丢失了小数位。

我试图像这样组合这些:

str_result = " %2.2f " %result

没有明显效果。它具有与 相同的结果%.2f

有没有办法强制 Ruby 将字符串格式化为这种四位数格式?

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