我需要在php中添加数字而不更改下面的数字格式
$a = "001";
$b = "5";
$c = $a+$b;
现在结果就像" 6"但我需要" 006"如果$a
是" 01"然后结果应该是" 06"。
由于
答案 0 :(得分:3)
从技术上讲,您示例中的$a
和$b
为strings - 当您对其使用加法运算符时,它们会转换为integers,但无法保持领先零。更多details on string-to-number conversion are in the manual
这样的事情会做到这一点(假设带有前导零的正整数字符串)
#figure out how long the result should be
$len=max(strlen($a), strlen($b));
#pad the sum to match that length
$c=str_pad($a+$b, $len, '0', STR_PAD_LEFT);
如果你总是知道字符串必须有多长,你可以使用sprintf,例如
$c=sprintf('%03d', $a+$b);
在这里,%
引入了占位符,03
告诉我们我们希望零填充至少填充3位数,而d
告诉它我们正在格式化整数。
答案 1 :(得分:1)
希望这会对你有所帮助:
<?php
$a="001";
$b="5";
$l=max(strlen($a),strlen($b));
$c=str_pad($a+$b, $l,"0", STR_PAD_LEFT);
echo $c;
?>
答案 2 :(得分:0)
常见情况。你的代码应该是这样的。
$a = someFormat($original_a);
$b = someFormat2($original_b); // $b has different format.
$c = someFormat($a + $b);
或者,您需要编写formatRecognition函数。
$a = getValueA();
$b = getValueB();
$c = someFormat(formatRecognition($a), $a + $b);