我正在尝试在Ruby中实现以下代码并陷入困境。
我查看了文档,但它们都处理字符串而不是对象。
PHP代码:
if ( substr($new_price, -2) != '00' ) {
我试过的Ruby代码:
if new_price[-2,2] != '00'
if new_price.to_s.slice[-2,2] != '00'
编辑:
对于目前的使用情况,只是为了检查价格是否有小数,我改用了这个:
if new_price.ceil != new_price
我仍然很好奇如何在Ruby中正确地做到这一点。
答案 0 :(得分:4)
在Ruby中,您可以使用(例如)此代码获取字符串的最后两个元素:
price = '200'
puts price[-2..-1]
#=> 00
您还可以将last(n)
方法添加到String类中,如下所示:
class String
def last(n)
self[-n..-1] || self
end
end
然后你可以写这样的代码:
puts price.last(2)
#=> 00
puts price.last(100)
#=> 200
答案 1 :(得分:2)
unless new_price.to_s.end_with?('00')
答案 2 :(得分:0)
尝试:
if new_price.to_s.slice(-2, 2) != '00'