Yanıtlar:
Bir tamsayı olarak saklamak ve çalışma zamanında açıkladığınız gibi görüntülemek daha iyi olur. Her dilin sıfırları doldurmak için kendine özgü bir yolu vardır - Ruby için String # rjust kullanabilirsiniz . Bu yöntem, belirli bir dolgu karakteri kullanarak belirli bir uzunluk haline gelmesi için bir dizeyi (sağa yaslanmış) doldurur.
str.rjust(integer, padstr=' ') → new_str
Eğer
integer
uzunluğundan daha büyüktürstr
, yeni döndürenString
uzunluğuinteger
ilestr
doğru haklı ve doldurulurpadstr
; aksi takdirde geri dönerstr
.
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'
Tamsayıyı şu tür bir dizeye dönüştürebilirsiniz:
result_string = '%02i' % your_integer
Bu, db'ye nasıl kaydedildiğinden bağımsızdır.
Bu da oldukça kullanışlı:
"%.2d" % integer
Ortaya çıkan dize 2 karakterden oluşur ve sayı 2 karakterden azsa, dizede 0'lar bulunur
01
Tamsayı olarak saklayamazsınız . Dönüştürülecek1
Bir dize olarak saklayabilir veya "01" bir dize olarak gösterebilirsiniz
Bunu deneyin ve bunları eşleşecek şekilde değiştirebilirsiniz
def numeric92(num)
if num.present?
if num < 0 && num > -1
('-%05d' % num) + '.' + ('%.2f' % num).split('.').last
else
('%06d' % num) + '.' + ('%.2f' % num).split('.').last
end
else
'000000.00'
end
end
if num < 0 && num > -1
nedir?