Lepiej byłoby zapisać go jako liczbę całkowitą i po prostu wyświetlić go tak, jak opisano w czasie wykonywania. Każdy język ma swój własny sposób wypełniania zer - w przypadku Rubiego możesz użyć String # rjust . Ta metoda dopełnia ciąg (wyrównany do prawej), tak aby uzyskał określoną długość, używając danego znaku dopełniającego.
str.rjust(integer, padstr=' ') → new_str
Jeśli integer
jest większa niż długość str
, zwraca nową String
długość integer
z str
wyrównaniem do prawej i dopełnieniem padstr
; w przeciwnym razie zwraca 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'
Podoba mi się operator%, chociaż wydaje się, że wyszedł z łask ...
źródło
Innym sposobem osiągnięcia tego jest dopełnienie liczby całkowitej w czasie wyświetlania za pomocą sprintf:
źródło
Spróbuj tego, a możesz je zmienić, aby pasowały
źródło
if num < 0 && num > -1
to właściwie jest?