我不明白为什么会这样:
s = "000301"
"%06d" % s ====> "000193"
sprintf("%06d", s) ====> "000193"
Run Code Online (Sandbox Code Playgroud)
因为它被解释为八进制数.
在irb中尝试:
> 0301
=> 193
Run Code Online (Sandbox Code Playgroud)
但是当你写:
> 301
=> 301
Run Code Online (Sandbox Code Playgroud)
如果你想让它工作,尝试将其转换为整数String#to_i:
"%06d" % s.to_i
sprintf("%06d", s.to_i)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |