Ruby on rails 将字符串(带逗号)转换为整数

Ruby on rails 将字符串(带逗号)转换为整数,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想把字符串转换成整数。数组的值是19,99,作为my DB列中的字符串(因为逗号) 销售。产品)。采摘(:mrr)%> 当前用户.sales.count为2,mrr为“19,99”。我想将这两个值相乘,但结果只是“38” 现在有人做什么了吗?使用.to\f而不是.to\i将其转换为浮点。我也应该用逗号 另一个选项是使用(谢谢@Stefan!): 为什么使用字符串而不是浮点数?这只适用于“.”,如19.99。但这是一个好的开始!我想将数组的两个值(字符串/文本)相乘,结果应该是浮点/整数。

我想把字符串转换成整数。数组的值是19,99,作为my DB列中的字符串(因为逗号)


销售。产品)。采摘(:mrr)%>
当前用户.sales.count
2
mrr
为“19,99”。我想将这两个值相乘,但结果只是“38”


现在有人做什么了吗?

使用
.to\f
而不是
.to\i
将其转换为浮点。我也应该用逗号

另一个选项是使用(谢谢@Stefan!):


为什么使用字符串而不是浮点数?这只适用于“.”,如19.99。但这是一个好的开始!我想将数组的两个值(字符串/文本)相乘,结果应该是浮点/整数。事实证明“.to_f”是正确的方法,但它只允许“.”而不是“,”(我们在德国用逗号分隔货币值)。@Harakiri将货币值作为本地化字符串存储在数据库中是一个糟糕的主意。您应该使用适当的数字数据类型(例如MySQL中的DECIMAL)并处理视图中的格式。它仅将整数部分转换为浮点:
'38,38'。to_f=>38.0
,谢谢!你知道为什么它放了两次“39.98”作为我得到它的结果,这是因为循环。你知道我的构造在没有循环的情况下是如何工作的吗?当我删除循环时,我得到一个“未定义的局部变量或方法` sale'for#”。对不起,我对rails很陌生(创建中间数组似乎有点复杂。为什么不使用
str.tr('、'、')
str.sub('、'、')
?@Stefan编辑了答案,你是对的!谢谢评论!
<% @sales.each do |sale| %>
  <% if current_user.id == sale.user_id %>
   <% price = Warehouse.where(:product => sale.product).pluck(:mrr) %>
   <% price = price.shift.strip.to_i %>
   <% agent = current_user.sales.count.to_i %>
   <%= value = agent * price %>
  <% end %>
<% end %>
 '38,38'.split(',').join('.').to_f * 2
 #=> 76.76
'38,38'.sub(',', '.').to_f * 2
#=> 76.76