我想格式化一个浮动数字,如下所示:
我已经尝试了以下功能。
sprintf("%02.02f", 1.7);
请帮忙。
答案 0 :(得分:4)
尝试:
sprintf('%05.2f', 1.7);
<强>解释强>
这forum post向我指出了正确的方向:第一个数字既不表示前导零的数量,也不表示小数分隔符左侧的总字符数,而是表示总字符数。结果字符串!
示例强>
sprintf('%02.2f', 1.7);
至少产生十进制分隔符“。”加上至少2个字符的精度。由于总共已有3个字符,因此开头的%02无效。要获得所需的“2前导零”,需要为精度和小数分隔符添加3个字符,使其成为sprintf('%05.2f', 1.7);
答案 1 :(得分:1)
您是否尝试使用str_pad()
?这是字符串,这就是你需要的,因为$var = 001
是一个八进制,$var = "001"
是一个字符串。
$input = 1.7;
$output = str_pad($input, "0", 2, STR_PAD_BOTH)
答案 2 :(得分:1)
试试这个
sprintf('%05.2f', 1.7);