在php中添加两个数字并保留前导零

时间:2015-01-27 08:26:30

标签: php

我需要在php中添加数字而不更改下面的数字格式

$a = "001";  
$b = "5";  
$c = $a+$b;  

现在结果就像" 6"但我需要" 006"如果$a是" 01"然后结果应该是" 06"。

由于

3 个答案:

答案 0 :(得分:3)

从技术上讲,您示例中的$a$bstrings - 当您对其使用加法运算符时,它们会转换为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);