php printf 5位数,但显示额外的1位数

时间:2017-08-25 09:37:04

标签: laravel-5.4 php-7

我发现了printf('%50d',33)作为标题的问题, 我只是希望它显示00033,但它显示000335。

我尝试printf('%50d-',33)它成为00033-6, 如果没有错,最后一个数字是总数字数。

我可以知道如何删除它吗?

  

EDITED

模型/ Product.php

class Product extends Model
{
    protected $appends = ['code'];
    public function getCodeAttribute(){
        return $this->attributes['code'] = sprintf("A%'.05d",$this->id);
    }
}

查看/ home.blade.php

<ul class='codeList'>
  @foreach($products as $product)
  <li>
  <div class='name'>{{ $product->name }}</div>
  <div class='code'>{{ $product->code }}</div> {{-- This Part Show A00033 --}}
  </li>
  @endforeach
</ul>

2 个答案:

答案 0 :(得分:0)

mentioned看起来您的格式字符串的顺序不正确为Matt。 应为printf("%'.05d\n",33);

答案 1 :(得分:0)

解决了问题。 使用sprintf("A%'.05d",$this->id);

printf("A%'.05d",$this->id);内容

感谢@Matt提供的链接。 更新问题的答案。