这是一个与工作相关的小程序:
#get refractive index
print "What is the surrounding refractive index?"
n = gets.chomp
puts n.to_f
#get refractive index of the lens
print "What is the refractive index of the lens?"
n1 = gets.chomp
puts n1.to_f
print "What is the radius of curvature of the lens?(mm)"
r= gets
puts r.to_f
F= (n1-n)/r
print "F={F}D"
这是一个错误:
undefined method `-' for "1.523":String
Did you mean? -@
(repl):12:in `<main>'
这是什么意思?
答案 0 :(得分:1)
这是什么意思?
undefined method '-' for "1.523":String
这意味着,你不能用字符串做数学。
puts n.to_f
这条线毫无意义。首先将字符串n
转换为浮点数,然后立即将puts
转换回字符串进行打印。 (与此同时,n
本身永远不会被触及/修改。它仍然是一个字符串。)
一旦得到它,就立即将输入转换为浮点数。
n = gets.chomp.to_f
或者,因为to_f
会忽略尾随换行符,您可以省略chomp
n = gets.to_f