红宝石。如何在1000美元的投资上写一年1%百分比利润的循环

时间:2018-01-30 15:49:50

标签: ruby loops methods iterator percentage

我想制作一个红宝石计划,计算一年内每天投资的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

3 个答案:

答案 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