我试图将Ruby中的浮点格式化为四位数,包括小数。
例如:
1 => 01.00
2.4 => 02.40
1.4455 => 01.45
现在,我正在尝试按如下方式格式化浮点数:
str_result = " %.2f " %result
成功将小数位数限制为两位。
我也知道:
str_result = " %2d " %result
成功将1
变为01
,但丢失了小数位。
我尝试将这些结合起来:
str_result = " %2.2f " %result
没有明显效果。它与%.2f
具有相同的结果。
有没有办法强制Ruby将字符串格式化为这种四位数格式?
答案 0 :(得分:10)
您可以使用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"