回答:
それを整数として保存し、実行時に説明したように表示する方がよいでしょう。すべての言語には、ゼロを埋め込む独自の方法があります。Rubyの場合は、String#rjustを使用できます。このメソッドは、指定された埋め込み文字を使用して、文字列(右寄せ)が指定された長さになるように埋め込みます。
str.rjust(integer, padstr=' ') → new_str
場合
integer
の長さよりも大きい場合str
、新しい返すString
長さのinteger
とstr
右揃えをし、で埋めpadstr
。それ以外の場合はを返します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'
あなたは整数をそのような文字列に変換することができます:
result_string = '%02i' % your_integer
これは、データベースに保存される方法とは無関係です。
これも非常に便利です。
"%.2d" % integer
結果の文字列は2文字で、数値が2文字未満の場合、0が文字列に存在します
これを試して、あなたはそれらを一致するように変更することができます
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
は何ですか?