Ruby 打印数字时的货币格式
好的,这是一个非常简单的程序,运行良好。但我不喜欢的一点是,每当控制台打印出总数时,它看起来就像下面的示例:417的75.0%是31275。Ruby 打印数字时的货币格式,ruby,decimal,string-formatting,Ruby,Decimal,String Formatting,好的,这是一个非常简单的程序,运行良好。但我不喜欢的一点是,每当控制台打印出总数时,它看起来就像下面的示例:417的75.0%是31275。 现在有没有办法让我把总数以十进制/货币形式打印出来?好像应该是312.75之类的。请尽量简单回答,我是Ruby新手。谢谢大家! 首先你需要修正你的数学。75%等于75/100,所以您需要 def percent_of puts "What is the number?" number = gets.chomp.to_f puts "What i
现在有没有办法让我把总数以十进制/货币形式打印出来?好像应该是312.75之类的。请尽量简单回答,我是Ruby新手。谢谢大家! 首先你需要修正你的数学。75%等于75/100,所以您需要
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
接下来,您需要一个格式字符串,以确保的总百分比始终以正确的小数数打印:
total_percent_of = number * percent / 100.0
(您需要在percent
之后加上%%
,因为百分号对sprintf有特殊意义)。有关字符串格式的详细信息,请参阅。谢谢!现在效果很好。如果要使用格式字符串,请将其用于所有变量。不要混淆它们,因为这会变得更难阅读/维护:sprintf“%d%%of%d是%.2f”,[percent,number,total_percent of]
我实际上更喜欢put“{number}的{percent}%是{%.2f”%total_percent of}”
,因为这样可以将字符串格式本地化到唯一需要它的地方。
sprintf " #{percent}%% of #{number} is %.2f", total_percent_of