PHP - 保持总和中的 0 不重要
PHP - keeping the 0 non-significant in the sum
在数据库中,我有一个字段,其值例如 C50003
。
我有一个函数将这个值分为:C5
和 0003
。
现在我需要将 1 添加到 0003,这将成为 0004。
问题是,当我对 (0003 + 1) 求和时,结果是 4 而不是 0004。 (我已经尝试过 0003 + 0001,但没有任何变化)。
要修复此错误,我必须计算初始 0 的数量并将它们放回最终结果,但这将是一项费力的检查。
有什么方法可以保留这些 0 吗?
简单的方法:
$value = '0003';
$intValue = (int) $value;
$newValue = $intValue + 1;
$formattedValue = str_pad($newValue, strlen($value), '0', STR_PAD_LEFT);
echo $formattedValue; // 0004
$value = '0012'; // => 0013
UPD:根据@user1597430 的建议将 strlen($value) - strlen($intValue) + 1
更改为 strlen($value)
。
在数据库中,我有一个字段,其值例如 C50003
。
我有一个函数将这个值分为:C5
和 0003
。
现在我需要将 1 添加到 0003,这将成为 0004。
问题是,当我对 (0003 + 1) 求和时,结果是 4 而不是 0004。 (我已经尝试过 0003 + 0001,但没有任何变化)。
要修复此错误,我必须计算初始 0 的数量并将它们放回最终结果,但这将是一项费力的检查。
有什么方法可以保留这些 0 吗?
简单的方法:
$value = '0003';
$intValue = (int) $value;
$newValue = $intValue + 1;
$formattedValue = str_pad($newValue, strlen($value), '0', STR_PAD_LEFT);
echo $formattedValue; // 0004
$value = '0012'; // => 0013
UPD:根据@user1597430 的建议将 strlen($value) - strlen($intValue) + 1
更改为 strlen($value)
。