string中的零填充数字
我需要单个数字(1到9)到(01到09)。 我可以想出一个方法,但它的大,丑和繁琐。 我确定必须有一些简洁的方法。 有什么build议么
首先,你的描述是误导性的。 Double
是一个浮点数据types。 你可能想要用string中的前导零填充你的数字。 下面的代码是这样做的:
$s = sprintf('%02d', $digit);
有关更多信息,请参阅sprintf
的文档。
还有str_pad
<?php $input = "Alien"; echo str_pad($input, 10); // produces "Alien " echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien" echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___" echo str_pad($input, 6 , "___"); // produces "Alien_" ?>
使用str_pad解决scheme:
str_pad($digit,2,'0',STR_PAD_LEFT);
基准在PHP 5.3
结果str_pad:0.286863088608
结果sprintf:0.234171152115
码:
$start = microtime(true); for ($i=0;$i<100000;$i++) { str_pad(9,2,'0',STR_PAD_LEFT); str_pad(15,2,'0',STR_PAD_LEFT); str_pad(100,2,'0',STR_PAD_LEFT); } $end = microtime(true); echo "Result str_pad : ",($end-$start),"\n"; $start = microtime(true); for ($i=0;$i<100000;$i++) { sprintf("%02d", 9); sprintf("%02d", 15); sprintf("%02d", 100); } $end = microtime(true); echo "Result sprintf : ",($end-$start),"\n";
"0$digit"
..如果你已经知道它的单个数字!