将正整数转换为负整数

ruk*_*_21 3 ruby ruby-on-rails-3

  def negate_amount
    amount = model.amount.to_s
    ("-" + amount).to_i
  end
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法将正整数转为负数?

上面的代码有效,但有没有ruby或rails功能呢?没有做数学运算?

小智 10

你可以使用一元运算-符:

def negate_amount
    -model.amount
end
Run Code Online (Sandbox Code Playgroud)


小智 10

类似的问题如何将正数转换为负数?.但总的来说,如果你总是期待一个否定的答案,你可以简单地说

def negate_amount
    amount = -(model.abs)
end
Run Code Online (Sandbox Code Playgroud)

否则,如果您只是希望函数返回整数的负数:假设否定负数会返回正数,那么您将使用

def negate_amount
    amount = -(model)
end
Run Code Online (Sandbox Code Playgroud)


小智 3

您只需将金额乘以 -1 即可。