我试图将
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将字符串格式化为这种四位数格式?
解决方法
你可以使用
sprintf('%05.2f',value)
.
关键是格式是宽度.精度,其中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"