Мне нужно добавить числа в php, не меняя формат чисел, как показано ниже.
$a = "001"; $b = "5"; $c = $a+$b;
Теперь результат получается как «6», но мне нужно «006», если $a
– «01», тогда результат должен быть «06».
благодаря
С технической точки зрения, $a
и $b
в вашем примере являются строками – когда вы используете на них оператор сложения, они преобразуются в целые числа, которые не могут удерживать ведущие нули. Более подробная информация о преобразовании строк в число содержится в руководстве
Что-то вроде этого сделало бы это (предполагая положительные целые строки с ведущими нулями)
#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
сообщает, что мы форматируем целое число.
Надеюсь, это поможет вам:
<?php $a="001"; $b="5"; $l=max(strlen($a),strlen($b)); $c=str_pad($a+$b, $l,"0", STR_PAD_LEFT); echo $c; ?>
Для общего случая. Ваш код должен выглядеть так.
$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);