š Checkout my Learn React by Making a Game course and get 1 month Free on Skillshare!

# The double tilde ~~ operator in Javascript

Adding to the list of useful obscure operators in Javascript, today will discuss the double tilde `~~` operator.

What it does is remove everything after the decimal point. Think of it as a way to round a number.

Let's see it in action:

``````console.log( ~~ 7.34) // 7
console.log( ~~ -11.40) // -11``````

The full formula is:

``````const doubleTilde = (x) => {
if(x < 0) return Math.ceil(x);
else return Math.floor(x)
}``````

It also works with strings:

``````console.log( ~~ "7.34") // 7
console.log( ~~ "-11.40") // -11``````

For example, this can be used when we generate a random number for a HSL color in Javascript:

``````const randColor = `hsl(\${~~(360 * Math.random())}, 100%, 50%)`

// will output something like "hsl(123, 100%, 50%)"
// or  "hsl(123, 100%, 50%)"``````

Under the hood what is happening is that we are applying the single tilde operator twice. So actually, there is no real double tilde operator š.

But, we do have a double asterisk ** operator in Javascript.

#### š 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.

#### š 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.