# [ACCEPTED]-Javascript: Cast Math.sqrt to int?-casting

Use `Math.round`

, `Math.ceil`

, or `Math.floor`

depending on your specific rounding 1 needs.

*"For rounding numbers to integers one of Math.round, Math.ceil and Math.floor are preferable, and for a desired result that can be expressed as a 32 bit signed integer the bitwise operation described below might also suit."*

-http://www.jibbering.com/faq/faq_notes/type_convert.html#tcNumber

Someone suggested parseInt. That goes from 4 a string to an int, but it's easy to turn 3 a float into a string.

```
parseInt(Math.sqrt(num)+"")
```

Remember that no matter 2 what you do, JavaScript is always using 1 floats. There is no integer type.

Math.floor will do it. Doubt you even need 1 to go to an integer, though.

```
Math.floor(Math.sqrt(num));
```

Using `parseInt(Math.sqrt(num)+"")`

is slower than using `Math.round(Math.sqrt(num))`

. I think it 4 is because in first example you are creating 3 string, parsing integer value of `num`

and rounding 2 it. in second example you just take int 1 and round it.

i know this is an old question, but i figure 7 for anyone finding this later....

i won't 6 reiterate what the other answers say, but 5 a fun little trick you can do is:

```
Math.sqrt(2); //1.41......
~~Math.sqrt(2); //1
```

the double 4 bitwise negative drops off anything after 3 the decimal point. i've been told it's 2 slightly faster, but i'm not entirely convinced.

EDIT: as 1 a note this will round toward 0.

More Related questions

We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.