답변:
그랬어 sprintf '%02d', n
?
irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"
나중에 형식 테이블sprintf
을 참조하고 싶을 수 있지만이 특정 예 에서는 최소 2 자 ( )를 차지하는 '%02d'
정수 ( d
) 를 인쇄하고 2
공백 ( 0
) 대신 0으로 왼쪽 채우기 를 인쇄하는 것을 의미합니다 .
%02i
출력이 정수이고 정수 여야한다는 것이 더 분명하기 때문에이 경우에 사용해야 할 것입니다 . d는 사용에 익숙하지 않은 사람들에게는 덜 직관적입니다 sprintf
.
'%02d'%1
sprintf를하지 않고
많은 사람들이 sprintf
(올바른 일입니다) 사용하고 있으며 문자열에 대해 이것을 수행 하려면 rjust
및 ljust
메서드 를 염두에 두는 것이 가장 좋습니다 .
"4".rjust(2, '0')
이렇게하면 "4"
최소한 2
문자 길이인지 확인하고 '0'
. ljust
그 반대입니다.
rjust
하면 sprintf의 형식 문자열을 구문 분석하고 문자열을 숫자로 변환하고 해당 숫자를 다시 문자열로 변환하는 비용을 피할 수 있습니다. 또한 사람이 코드가 수행하려는 작업을 한 눈에 쉽게 이해할 수 있습니다.
이것을 시도하면 작동합니다.
abc= 5
puts "%.2i" %abc >> 05
abc= 5.0
puts "%.2f" %abc >> 5.00