打印号码时的货币格式

时间:2014-09-12 13:18:29

标签: ruby decimal string-formatting

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或类似的东西。请尽量保持简单的答案,我是Ruby的新手。谢谢!

1 个答案:

答案 0 :(得分:1)

首先你需要修正你的数学。 75%等于75/100所以你想要

total_percent_of = number * percent / 100.0

接下来,您需要一个格式字符串,以确保始终使用正确的小数位数打印total_percent_of

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

%%之后需要percent,因为百分号对sprintf有特殊意义)。有关字符串格式的详细信息,请参阅the documentation