그들은 이미 문자열 조작을 사용할 수 따가워있어 완전히 숫자 문제를 무시하는 경우 :
# There are, of course, all sorts of ways to do this.
def add_decimal(s)
pfx = [ '0.00', '0.0', '0.' ]
if(pfx[s.length])
s = pfx[s.length] + s
else
s = s.dup
s[-2, 0] = '.'
end
s
end
add_decimal('') # "0.00"
add_decimal('1') # "0.01"
add_decimal('12') # "0.12"
add_decimal('123') # "1.23"
add_decimal('1234') # "12.34"
add_decimal('12345') # "123.45"
아니 그러나, 나는 확실히 그들이 때 sprintf와 에드을 수레로 변환 얻을하지 있어요 정밀도 문제, 부동 소수점 없음, bignums 없음, 합리적인, 아무것도 교묘 한, 영리한 아무것도. 음수 값을 처리하기 위해 간단한 수정이 필요할 수 있지만 이미 존재하는 것만 큼 단순합니다.
필요한 정밀도에 따라 다릅니다. 정밀도가 괜찮 으면 돈 젬으로 가라. – Philip