Seria melhor armazená-lo como um número inteiro e apenas exibi-lo como você descreveu em tempo de execução. Todo idioma tem sua própria maneira de preencher zeros - para Ruby você pode usar a String # rjust . Esse método preenche uma string (justificada à direita) para que ela se torne um determinado comprimento, usando um caractere de preenchimento especificado.
str.rjust(integer, padstr=' ') → new_str
Se integer
for maior que o comprimento de str
, retorna um novo String
comprimento integer
com str
justificado à direita e preenchido com padstr
; caso contrário, retorna str
.
some_int = 5
some_int.to_s.rjust(2, '0') # => '05'
some_int.to_s.rjust(5, '0') # => '00005'
another_int = 150
another_int.to_s.rjust(2, '0') # => '150'
another_int.to_s.rjust(3, '0') # => '150'
another_int.to_s.rjust(5, '0') # => '00150'
Gosto do operador%, mesmo que pareça ter saído em desuso ...
fonte
Outra maneira de conseguir isso é preencher o número inteiro no tempo de exibição, usando o sprintf:
fonte
Tente isso e você pode alterá-los para combinar
fonte
if num < 0 && num > -1
é?