2015-01-30 8 views
1

기본 스크립트의 값을 점차적으로 증가시키는 작은 스크립트를 2 % 씩 만들어 봅니다. 부동 소수점을 처리하는 방식에 문제가있는 것 같습니다. 스크립트는 각 숫자를 사전 설정된 값까지 계산해야하지만 무한히 계속됩니다.Ruby에서 부동 소수점 정수

require 'bigdecimal' 


def multiplication sum, count 
    print "Original Sum: #{sum}\n" 
    until sum == 100 do 

     float = BigDecimal('1.02') 

     next_sum = (sum * float.round(3)) 
     print "#{count}: #{next_sum}\n" 

     count += 1 
     sum = next_sum 
    end 
end 

multiplication 2, 1 

답변

4

합계가 100이 될 때까지 스크립트가 루핑되고, 값이 작은 값에서 큰 값으로 점프하면 발생하지 않을 수 있습니다. 루프 상태를 다음으로 변경하십시오.

until sum >= 100 do 

또한 "부동 소수점 정수"는 모순입니다.

+1

아마도'> ='이 더 좋습니다. –

+0

Hmmm ... 정확히 정수를 나타내는 부동 소수점 값은 "부동 소수점 정수"라고 부를 수 있습니다. 하지만 그렇지 않으면 동의하고 다른 용어 나 설명이 더 좋을 것입니다. –