我需要在代码中编写以下公式:
C ((i/100)(n/365)+1)
这意味着i
应除以100,n
应除以365,两个结果必须相乘,结果数应加1,结果数应乘以{ {1}}。
我能够编写以下代码,但是数学运算中出现了一个我无法解决的错误:
C
答案 0 :(得分:1)
试试这个:
investment_calculation = money_invested * (((interest_rate / 100) * (time_investment / 365) + 1))
1)您使用[]
代替()
。
[]
中的对应列表
2)您需要使用*
乘以(interest_rate / 100)
和(time_investment / 365)
修改
如果您使用的是小数,则代码无效,您需要使用to_f
代替to_i
像这样:interest_rate = gets.to_f
答案 1 :(得分:1)
当你在Ruby中划分两个整数时,你得到整数除法(结果是一个整数):
irb(main):001:0> 1343/1000
#=> 1
如果你想要一个浮点数,那么你需要两个数中至少有一个是浮点值:
irb(main):002:0> 1343/1000.0
#=> 1.343
irb(main):003:0> 1343.0/1000
#=> 1.343
您可以通过将用户输入为浮点数而不是整数(使用to_f
而不是to_i
),或使用公式中的浮点常量来完成此操作。如果用户在50.75
中输入他们的钱,第一个就足够了,也是有意义的。 ("50.75".to_i #=> 50
)
puts "Insert money to invest:"
money_invested = gets.to_f
puts "Indicate in days the period of deposit:"
time_investment = gets.to_f
puts "Indicate interest rate:"
interest_rate = gets.to_f
investment_calculation = money_invested * (1 + interest_rate/100 * time_investment/365)
puts "Your refund will be $%.2f." % investment_calculation
请注意,我已使用String#%
方法将%.2f
格式化为两位小数。这是因为3.round(2)
会根据需要生成数字3.0
而不是字符串"3.00"
。