我定义了浮动
enquire_balance_outstanding_score=0.7
然后,我合并了文本并得到变量“enquire_balance_outstanding_score”的相同名称
text=enquire-balance_outstanding
ref_score=0.0
ref_score= (text.tr('-','_')+"_score").to_f
我希望ref_score的值为0.7但是当我运行时,它返回 0.0 。
如何获取此变量值?
答案 0 :(得分:1)
String#to_f
将"0.7"
转换为0.7。它不会将"enquire_balance_outstanding_score"
转换为0.7;换句话说,to_f
无法解析变量值。
答案 1 :(得分:0)
如何使用Hash
?
values = {'enquire_balance_outstanding_score' => 0.7}
text = 'enquire-balance_outstanding'
values[text.tr('-','_')+"_score"]
# => 0.7
您可以使用Kernel#eval
,但不推荐,因为eval
可以执行abitrary表达。
enquire_balance_outstanding_score = 0.7
text = 'enquire-balance_outstanding'
eval text.tr('-','_')+"_score"
# => 0.7