Phi*_*own 15 formatting printf
我试图弄清楚如何使用sprintf打印至少两个小数位并且没有前导零.例如
输入:
23
23.0
23.5
23.55
23.555
23.0000
Run Code Online (Sandbox Code Playgroud)
输出:
23.00
23.00
23.50
23.55
23.555
23.00
Run Code Online (Sandbox Code Playgroud)
任何格式化帮助将不胜感激
Jak*_*org 14
没有这样的内置格式说明符.您可以检查要打印的数字是否有两个或更少的小数(舍入到两位小数并进行比较),如果是,请使用%.02f.如果数字有更多小数,请使用%g说明符.这是Ruby中的一个例子:
def print_two_dec(number)
rounded = (number*100).to_i / 100.0
if number == rounded
printf "%.02f\n", number
else
printf "%g\n", number
end
end
[ 23, 23.0, 23.5, 23.55, 23.555 ].each do |number|
print_two_dec(number)
end
Run Code Online (Sandbox Code Playgroud)
输出:
23.00
23.00
23.50
23.55
23.555
Run Code Online (Sandbox Code Playgroud)