比较数字字符串和格式化整数与Ruby中的前导零

时间:2014-01-30 00:23:33

标签: ruby string numbers string-formatting

我如何使用红宝石中的数字05798300? 当我输入: 2.0.0p247:031> 05798300 SyntaxError:(irb):31:八进制数字无效

2.0.0p247:001> 04704110  => 1280072

我需要检查号码:04704110是否在0100000000和09000000之间。

1 个答案:

答案 0 :(得分:1)

如果您需要保留前导零,请将您的邮政编码存储为字符串,然后您可以将其比较为:

test  = '04704110'
lower = '01000000' #assuming eight digits
upper = '09000000'

p lower < test && test < upper
#=> true

否则,将它们作为整数进行比较,但在打印时将它们格式化,添加前导零:

test = 4704110
p "%08d" % test
#=> "04704110"