【发布时间】:2016-02-17 12:44:23
【问题描述】:
我想格式化一个浮点数,像这样:
- 输入: 1.7
- 输出: 01.70
下面的功能我已经试过了。
sprintf("%02.02f", 1.7);
请帮忙。
【问题讨论】:
-
sprintf("0%.2f", 1.7);eval.in/520221
标签: php
我想格式化一个浮点数,像这样:
下面的功能我已经试过了。
sprintf("%02.02f", 1.7);
请帮忙。
【问题讨论】:
sprintf("0%.2f", 1.7); eval.in/520221
标签: php
试试:
sprintf('%05.2f', 1.7);
说明
这个forum post 给我指出了正确的方向:第一个数字既不表示前导零的数量,也不表示小数分隔符左侧的总字符数,但结果中的字符总数字符串!
示例
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)
【讨论】: