使用php的负值

使用php的负值,php,Php,我的值是$title=10,我想用01减去它。所以我的代码是: echo $minus = round(($title - 01),2); 我想要结果,但是这个代码不是这样的,它仍然有结果。任何人都可以帮助我,谢谢。问题是PHP不是强类型,并且round()返回一个数字,该数字会自动去掉前导的零。尝试: $minus = "0" . round(($title - 01),2); PHP正在将带0前缀的数字计算为其基值——04和01分别为4和1 如果希望它们以前导0输出,请尝试使用,或者简

我的值是
$title=10
,我想用
01
减去它。所以我的代码是:

echo  $minus = round(($title - 01),2);

我想要结果,但是这个代码不是这样的,它仍然有结果。任何人都可以帮助我,谢谢。

问题是PHP不是强类型,并且
round()
返回一个数字,该数字会自动去掉前导的零。尝试:

$minus = "0" . round(($title - 01),2);

PHP正在将带0前缀的数字计算为其基值——04和01分别为4和1


如果希望它们以前导0输出,请尝试使用,或者简单地将它们附加到字符串“0”

发生的情况是round()返回一个整数。这意味着它之前不会有任何0。如果希望它在前面返回0,请重试

(四舍五入($title-1)、2、2、“0”)

这将使它总是在数字之前附加一个0,如果它只是一个数字,但如果它是10或15或其他数字,它不会附加一个0

echo str_pad(intval($title) - 1, 2, "0", STR_PAD_LEFT);
如果结果只有一个数字,这将用0填充结果;否则,它将无法填充。对于前导零,您可以用strlen($title)

替换2

$i=04-01;
echo sprintf('%02s', $i);  

数字不能有前导零。您正在询问如何格式化字符串。您是将其实现为八进制还是字符串?
var\u dump($title)
outputs
4
,因此无论您如何编写,只要它是一个有效的数字,PHP都会以最常见的形式存储它。将结果转换为字符串,以便可以添加零;问题是str_pad会自动填充到字符串的右侧,因此如果$title为04,则结果将为30。您可以指定
STR_PAD_LEFT
作为STR_PAD()中的第四个参数,它会向左移动;我快速搜索了一种在线运行PHP代码的方法,我确实遇到了这个问题。这将有助于今后: