How to Always Return a Negative Number in Ruby?

To make sure that you always return a negative number in Ruby, you can do either of the following:

Using Unary Minus Operator

You can convert the number to its absolute form, and then negate it using the unary minus operator (-):

-n.abs

This would convert a positive number to negative and ensure that an already negative number remains unchanged. For example, you can use this in the following way:

def neg(num)
    -num.abs
end

puts neg(1234) #=> -1234
puts neg(-1234) #=> -1234

Using Arithmetic Operators

You can convert the number to its absolute form, and then negate it either by:

  • Multiplying or dividing the number by -1, or;
  • Subtracting the number from 0.
n.abs * -1
n.abs / -1
0 - n.abs

These would convert a positive number to negative and ensure that an already negative number remains unchanged. For example, you can use any of these in the following way:

def neg(num)
    num.abs * -1
end

puts neg(1234) #=> -1234
puts neg(-1234) #=> -1234
def neg(num)
    num.abs / -1
end

puts neg(1234) #=> -1234
puts neg(-1234) #=> -1234
def neg(num)
    0 - num.abs
end

puts neg(1234) #=> -1234
puts neg(-1234) #=> -1234

This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.