Ruby 红宝石。如何在一笔1000美元的投资中写出一年1%的利润率循环
我想创建一个ruby程序来计算我一年中每天投资的1%。 例如,如果我投资1000美元,在一天结束时获得1%的利润,第二天我将投资1010.0美元,我将获得1020.1美元的1%利润,依此类推。 我想在365天后确定我的初始投资。 我试图用一个循环来打印每一个返回值,但正如你们所看到的,我仍然是一个超级新手。 谢谢萨姆 我一个人做的!谢谢你的回答Ruby 红宝石。如何在一笔1000美元的投资中写出一年1%的利润率循环,ruby,loops,methods,iterator,percentage,Ruby,Loops,Methods,Iterator,Percentage,我想创建一个ruby程序来计算我一年中每天投资的1%。 例如,如果我投资1000美元,在一天结束时获得1%的利润,第二天我将投资1010.0美元,我将获得1020.1美元的1%利润,依此类推。 我想在365天后确定我的初始投资。 我试图用一个循环来打印每一个返回值,但正如你们所看到的,我仍然是一个超级新手。 谢谢萨姆 我一个人做的!谢谢你的回答 money = 1000 days = 0 perc = 0.01 while days < 366 puts days puts mo
money = 1000
days = 0
perc = 0.01
while days < 366
puts days
puts money
days += 1
money = money * perc + money
end
money=1000
天数=0
perc=0.01
而天数<366天
把天
放钱
天数+=1
金钱=金钱*perc+金钱
结束
以下内容非常简单,但可以完成任务。基本上,将变量初始化为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
以下内容非常简单,但可以完成工作。基本上,将变量初始化为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
您不需要为此编写程序;这是一个单线计算
但是,如果您想一天一次完成,并显示每天的输出,那么:
money = 1000
(1..365).each do |day|
money *= 1.01
puts "After #{day} days: $#{money.round(2)}"
end
您不需要为此编写程序;这是一个单线计算
但是,如果您想一天一次完成,并显示每天的输出,那么:
money = 1000
(1..365).each do |day|
money *= 1.01
puts "After #{day} days: $#{money.round(2)}"
end
在处理货币价值时,应使用而不是Float
:
require 'bigdecimal'
money = BigDecimal('1000')
percentage = BigDecimal('0.01')
对于我使用的循环,它非常直观:
1.upto(365) do |day|
money += (money * percentage).round(2)
printf("%3d: %8.2f$\n", day, money)
end
计算当天的利润,通过四舍五入到2位数。您可以通过传递第二个参数来调整money*percentage
- 然后使用给定格式输出日期和货币:
打印宽度为3的整数%3d
打印一个带有2个小数位数、总宽度为8的浮点%8.2f
1: 1010.00$
2: 1020.10$
3: 1030.30$
...
363: 37039.07$
364: 37409.46$
365: 37783.55$
在处理货币价值时,应使用而不是Float
:
require 'bigdecimal'
money = BigDecimal('1000')
percentage = BigDecimal('0.01')
对于我使用的循环,它非常直观:
1.upto(365) do |day|
money += (money * percentage).round(2)
printf("%3d: %8.2f$\n", day, money)
end
计算当天的利润,通过四舍五入到2位数。您可以通过传递第二个参数来调整money*percentage
- 然后使用给定格式输出日期和货币:
打印宽度为3的整数%3d
打印一个带有2个小数位数、总宽度为8的浮点%8.2f
1: 1010.00$
2: 1020.10$
3: 1030.30$
...
363: 37039.07$
364: 37409.46$
365: 37783.55$
在命名方面,重新分配
start
感觉很奇怪。这是起始值,不是正在运行的计数器。:)在命名方面,重新分配start
感觉很奇怪。这是起始值,不是正在运行的计数器。:)你可能需要对每一笔利润进行取整,而不仅仅是结果。你不应该使用浮动。我不在金融部门工作,这不是企业级的解决方案。。。但是,是的,如果你曾经在重要的系统中处理过数字,那么你就永远不应该使用浮点数,否则当一分钱被四舍五入时,你会得到细微的误差!此外,如果你计算的钱不是你的,可能会有法律规定何时以及如何取整。你可能需要取整每一笔利润,而不仅仅是结果。你不应该使用浮动。我不在金融部门工作,这不是企业级的解决方案。。。但是,是的,如果你曾经在重要的系统中处理过数字,那么你就永远不应该使用浮点数,否则当一分钱被四舍五入时,你会得到细微的误差!此外,如果你计算的钱不是你的,可能有法律规定何时以及如何取整。美元符号通常出现在指定金额的左边。@SagarPandya确实,我只是采用OP问题的格式。美元符号通常出现在指定金额的左边。@SagarPandya确实,我只是从OP的问题中选取了格式。