我想格式化一个浮点数,像这样:
- 输入 : 1.7
- 输出 : 01.70
我已经尝试了以下功能。
sprintf("%02.02f", 1.7);
请帮忙。
尝试:
sprintf('%05.2f', 1.7);
解释
这篇论坛帖子为我指明了正确的方向:第一个数字既不表示前导零的数量,也不表示小数分隔符左侧的总字符数,而是结果字符串中的字符总数!
例 sprintf('%02.2f', 1.7);
至少生成小数分隔符"."加上至少 2 个字符的精度。由于总共已经是 3 个字符,因此开头的 %02 不起作用。要获得所需的"2 个前导零",需要添加 3 个字符的精度和小数分隔符,使其sprintf('%05.2f', 1.7);
试试这个
sprintf('%05.2f', 1.7);
你试过str_pad()
吗?它适用于字符串,这就是你需要的,因为$var = 001
是八进制,$var = "001"
是字符串。
$input = 1.7;
$output = str_pad($input, "0", 2, STR_PAD_BOTH)