我想制作一个红宝石计划,计算一年内每天投资的1%。 例如,如果我投资1000美元并在当天结束时获得1%的利润将是1010.0 $第二天我将投资1010.0美元,我将获得1%的利润1020.1美元,依此类推。 我想在365天后确定我的初始投资是多少。 我尝试用循环来打印每一个返回值但是你看我还是一个超级新人。 谢谢。萨姆
我独自完成了!谢谢你的所有答案!
money = 1000
days = 0
perc = 0.01
while days < 366
puts days
puts money
days += 1
money = money * perc + money
end
答案 0 :(得分:2)
1000 * 1.01**365
#=> 37783.43433288728
你不需要为此编写程序;这是一个单行计算。
但是,如果你想一次一天地做,并显示每天的输出,那么:
money = 1000
(1..365).each do |day|
money *= 1.01
puts "After #{day} days: $#{money.round(2)}"
end
答案 1 :(得分:1)
在处理货币值时,您应该使用BigDecimal
代替Float
:
require 'bigdecimal'
money = BigDecimal('1000')
percentage = BigDecimal('0.01')
对于循环,我使用upto
非常直观地工作:
1.upto(365) do |day|
money += (money * percentage).round(2)
printf("%3d: %8.2f$\n", day, money)
end
money * percentage
计算当天的利润,通过round
四舍五入到2位数。您可以通过传递第二个参数来调整rounding mode。printf
然后使用给定的格式输出日期和金钱:
%3d
打印宽度为3的整数%8.2f
打印一个包含2个小数位且总宽度为8 输出:
1: 1010.00$
2: 1020.10$
3: 1030.30$
...
363: 37039.07$
364: 37409.46$
365: 37783.55$
答案 2 :(得分:0)
以下内容非常简单,但可以完成工作。基本上你将变量初始化为1000,然后循环365次。我们有一个所有数学运算的块。它取值1000并乘以1.01并覆盖初始投资的值。您可以将365更改为2或您想要的任意天数。 puts打印开始的值。只需将它放在.rb文件中并运行'ruby file.rb'
即可运行start = 1000
365.times do
start = start*1.01
puts start
end
puts start