参数必须大于0 - 当值大于0时,这怎么可能

时间:2013-11-28 18:05:21

标签: php

所以我在PHP中执行以下操作:

$cost = $this->reportDataStructure['ext_cost'] / $this->reportDataStructure['quantity'];
var_dump($cost); // Outputs: float(220)
$this->reportDataStructure['cost'] = sprintf("%$.2f", $cost);

我一直在

Warning: sprintf(): Argument number must be greater than zero in C:\xampp\htdocs\rms\site\web\module\Report\controller\InventoryReport.controller.php on line 98

属于该行:

$this->reportDataStructure['cost'] = sprintf("%$.2f", $cost);

但我们可以看到:

var_dump($cost); // Outputs: float(220)

最近怎么回事?

1 个答案:

答案 0 :(得分:8)

$格式字符串中使用

printf来指定使用后面的说明符打印哪个参数,例如

sprintf('%2$f %1$d', $var1, $var2);

表示它会将$var2显示为浮点数,然后将$var1显示为整数。

您的格式字符串中有$,但之前没有数字。所以数字不大于0.

如果您使用该格式字符串解释您要完成的任务,我可以使用正确的方法更新答案。