我希望将一位数转换为两位数,如下所示:

9 ==> 09
5 ==> 05
12 == 12
4 ==> 04

我想我可以放一堆if-else语句(如果数字小于10,那么就做一个gsub),但我觉得这是可怕的编码.我知道Rails有精确的数字,但我发现它只适用于十进制数.有没有办法把一位数转换成两位数?

推荐答案

你是说sprintf '%02d', n

irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"

您可能希望将来引用format table for sprintf,但对于这个特定的示例,'%02d'意味着打印一个至少占用2个字符(2)的整数(d),并用零代替空格(0)填充.

Ruby-on-rails相关问答推荐

为什么Rails数值验证器不使用规格化值?

我使用rbenv安装Ruby,但我在使用";gem";->;错误:执行gem时遇到此错误.(Errno::EACCES)权限被拒绝

刺激中的Rails 7和 bootstrap 错误-无法解析模块说明符 bootstrap

多对多模型通过控制台创建记录不起作用

Rails:序列化数据库中的对象?

有没有一种简单的方法可以让 pow 为 https 服务?

如何使用 Vim 插入 ERB 标签?

rails 3,简单数组的Kaminari分页

更改 form_for rails 3.1 生成的 html 表单 ID

在 Rails 中将 DateTime 字符串转换为 UTC

使用回形针调整图像大小

在 where 查询中查找 nil has_one 关联

使用回形针使用 Activeadmin Rails 上传文件

在具有唯一约束的关联中使用 Rails 中的 factory_girl.得到重复的错误

设计/Rails - 如何删除特定的 Flash 消息? (登录成功)

Ruby 根据属性在数组中查找并返回对象

如何从 rails 控制器操作发出 404 响应?

您将如何解析 Ruby 中的 url 以获取主域?

如何设置 MiniTest?

在 Rails 4.1 中,如何通过枚举符号查找记录?