Ruby on Rails : 10보다 작은 숫자 앞에 어떻게 0을 추가합니까?
한 자리 숫자를 두 자리 숫자로 변환하려고합니다.
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
나는 if-else 문을 많이 넣을 수 있다고 생각합니다 (숫자가 10 미만이면 gsub를 수행하십시오). 그러나 그것은 끔찍한 코딩이라고 생각합니다. Rails에 number_with_precision이 있지만 십진수에만 적용된다는 것을 알고 있습니다. 한 자릿수를 두 자릿수로 변환하는 방법에 대한 아이디어가 있습니까?
당신은 의미 했습니까 sprintf '%02d', n
?
irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"
나중에 형식 표sprintf
를 참조하고 싶을 수도 있지만이 특정 예 에서는 공백 ( ) 대신 2 자 이상을 차지하고 왼쪽 여백을 0으로 '%02d'
갖는 정수 ( d
) 를 인쇄하는 것을 의미합니다 .2
0
많은 사람들이 sprintf
(올바른 일을합니다), 문자열에 대해이 작업을 수행 하려면 rjust
및 ljust
메소드 를 명심하는 것이 가장 좋습니다 .
"4".rjust(2, '0')
이렇게하면 "4"
적어도 2
문자 길이가 길고 으로 채워져 권리가 정당화됩니다 '0'
. ljust
반대입니다.
방법은 "%02d" % 9
? http://www.ruby-doc.org/core-2.0/String.html#method-i-25 및 http://www.ruby-doc.org/core-2.0/Kernel.html#method-i를 참조 하십시오 . -sprintf .
이것을 시도하십시오, 그것은 작동해야합니다 :
abc= 5
puts "%.2i" %abc >> 05
abc= 5.0
puts "%.2f" %abc >> 5.00
레일 5.2.2
https://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html에 설명 된대로 라이브러리 메소드를 사용할 수 있습니다.
number_with_precision(123, precision: 2) // 123.00
'program tip' 카테고리의 다른 글
.Net Framework 4.5에서 4.6.1로 업그레이드 한 후 Nuget 재 타겟팅 (0) | 2020.08.07 |
---|---|
ALTER TABLE 문에 'ON DELETE CASCADE'를 추가하는 방법 (0) | 2020.08.07 |
Android Studio에서 외부 라이브러리 추가 (0) | 2020.08.06 |
JavaScript에 중복이 포함 된 배열에서 고유 한 값의 배열을 얻는 방법은 무엇입니까? (0) | 2020.08.06 |
Android startActivity () 전환 애니메이션을 변경할 수 있습니까? (0) | 2020.08.06 |