我正在制作兴趣计算器
我去10 * .10 * 10然后我得到0所以我如何在没有0的情况下乘以小数?
我的源代码是
def interest()
puts "Type the original loan."
loan = gets.chomp.to_i
puts "Type the amount of interest in decimal."
interest = gets.chomp.to_i
puts "How many years?"
years = gets.chomp.to_i
puts "Your interest is"
puts loan * interest * years
end
interest()
答案 0 :(得分:6)
你有integer
,所以结果也是integer
。你可以使用'to_f
但要注意,处理金钱或其他任何需要精确的东西都不好。请改用BigDecimal:
require 'bigdecimal'
def interest
puts "Type the original loan."
loan = BigDecimal(gets.chomp)
puts "Type the amount of interest in decimal."
interest = BigDecimal(gets.chomp)
puts "How many years?"
years = BigDecimal(gets.chomp) # suggested in comment, agreed with that
puts "Your interest is"
puts loan * interest * years
end
答案 1 :(得分:3)
这样做
interest = gets.chomp.to_f
.to_i
将字符串更改为整数。整数是一个整数。
.to_f
是浮动的,浮点数是一个允许小数位的数字
答案 2 :(得分:1)
问题是当你真的不想在这里使用整数时,你正在使用.to_i
。整数表示没有小数部分,因此当您调用.10.to_i
时,它会将其截断为0。
考虑使用.to_f
代替