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.