### Introduction

The `Math.floor()`

function Rounds a number down to its closest integer, for example, `Math.floor(5.99)`

returns 5.

## What is Math.floor() in Javascript?

`Math`

is a Javascript Built-in object with **properties** and **methods** for Mathematical function, constants.

The `Math.floor()`

is one of the Static Methods in Javascript that takes a `Number`

and rounds it down.

```
console.log(Math.floor(5));
// 5
console.log(Math.floor(7.999));
// 7
console.log(Math.floor(7.009));
// 7
console.log(Math.floor(-3.95));
// -4
console.log(Math.floor(-3.05));
// -4
```

From the Example, you can see that `Math.floor()`

returns a `Number`

and it is always the largest integer **less than** or **Equal** to the provided number.

## Math.floor() and Type Coercion

One of the known features of Javascript is the “Type Coercion”. Many people might think it is just a bad design, But in my opinion, if you know the type and also what a method is going to return, you should not be worried.

The type coercion happens when one type is converted into another. For example, a `Number`

can turn into `String`

.

```
console.log(Math.floor(27.99));
// 27
// But Also
console.log(Math.floor("27.99"));
// 27
// And even
console.log(Math.floor("27.99" - 10));
// 17
```

So the `Math.floor()`

function expects a `Number`

as an argument but if you provide a number as `String`

type, it converts the string to an integer and returns an integer? whaaaa?

## Limitation

One of the caveats of the `Math.floor()`

function is passing `null`

as an argument.

You probably expect it to return `NaN`

(not a number), which is something that logically should be true but it returns 0 instead!

```
console.log(Math.floor(null));
// 0
```

There are other Static methods for `Math`

that might be useful to you based on your project requirements. I will be writing an article to cover different Methods and create a small ROI calculator shortly, so stay tuned.