2014-09-12 2 views
-1
def percent_of 
    puts "What is the number?" 
    number = gets.chomp.to_f 
    puts "What is the percent?" 
    percent = gets.chomp.to_f 
    total_percent_of = number * percent.to_f 
    puts " #{percent}% of #{number} is #{total_percent_of.to_i}." 
end 

좋아요. 이것은 프로그램의 아주 간단한 비율이며 잘 작동합니다. 하지만 싫어하는 점은 콘솔이 총계를 출력 할 때마다 다음 예제처럼 보일 것입니다 : 417의 75.0 %가 31275입니다. 이제 총계를 십진수/현금 형식으로 입력 할 수있는 방법이 있습니까? ? 그것은 312.75이거나 이와 비슷한 것이어야합니다. 루비를 처음 접한다면 답을 간단하게하십시오. 고맙습니다!번호 인쇄시 돈 형식

답변

1

먼저 수학을 수정해야합니다.

sprintf " #{percent}%% of #{number} is %.2f", total_percent_of 

(당신이 %%이 필요합니다 : 75 % 75/100 그래서 당신은 당신이 total_percent_of 항상 소수의 올바른 번호로 인쇄되도록 형식 문자열이 필요

total_percent_of = number * percent/100.0 

다음 원하는 같다 백분율 기호는 sprintf에 특별한 의미가 있으므로 percent 이후). 문자열 서식 지정에 대한 자세한 내용은 the documentation을 참조하십시오.

+0

감사합니다. 이제 잘됩니다. – zappdapper

+0

형식 문자열을 사용하려면 모든 변수에 형식 문자열을 사용하십시오. 'sprintf "% d의 % d %%는 % .2f", [percent, number, total_percent_of]' –

+0

나는 실제로'puts "를 선호한다. {{ %} # { '% .2f'% total_percent_of} ''이 (가) 필요합니다. – Max