# How to Get the Integer Part of a Decimal Number in PHP?

In PHP, you can get the integer part of a decimal number in the following ways:

If you wish to perform division and get the integer value as a result, then you may also use `intdiv()`.

## Casting to Integer

You can cast the number to an integer (or use the `intval()` function) to truncate floating point numbers towards zero, discarding the fractional component of a number and returning only the integer part.

For example, you can use it like this:

```var_dump((int) (10 / 3)); // 3
var_dump((int) (-10 / 3)); // -3
var_dump((int) (10 / -3)); // -3

var_dump((int) 3.333); // 3
var_dump((int) -3.333); // -3
```
```var_dump((int) (5 / 2)); // 2
var_dump((int) (-5 / 2)); // -2
var_dump((int) (5 / -2)); // -2

var_dump((int) 2.5); // 2
var_dump((int) -2.5); // -2
```
```var_dump((int) (10 / 1)); // 10
var_dump((int) (-10 / 1)); // -10
var_dump((int) (10 / -1)); // -10

var_dump((int) 10.0); // 10
var_dump((int) -10.0); // -10
```

## Using `floor()` and `ceil()`

To achieve the same effect as with casting to integer, you can:

• Use `floor()` to round down positive integers, and;
• Use `ceil()` to round up negative integers.

Doing so would truncate a floating point number towards zero. You can implement it, for example, like so:

```function trunc(int|float \$num): int
{
return (\$num > 0) ? floor(\$num) : ceil(\$num);
}
```

You can also implement this using only the `floor()` function like so:

```function trunc(int|float \$num): int
{
\$unsignedNum = floor(abs(\$num));
return (\$num < 0) ? -\$unsignedNum : \$unsignedNum;
}
```

Similarly, you can implement this using only the `ceil()` function like so:

```function trunc(int|float \$num): int
{
\$unsignedNum = ceil(-abs(\$num));
return (\$num < 0) ? \$unsignedNum : -\$unsignedNum;
}
```

Using any of these would yield the same result (as you can see in the examples below):

```var_dump(trunc(10 / 3)); // 3
var_dump(trunc(-10 / 3)); // -3
var_dump(trunc(10 / -3)); // -3

var_dump(trunc(3.333)); // 3
var_dump(trunc(-3.333)); // -3
```
```var_dump(trunc(5 / 2)); // 2
var_dump(trunc(-5 / 2)); // -2
var_dump(trunc(5 / -2)); // -2

var_dump(trunc(2.5)); // 2
var_dump(trunc(-2.5)); // -2
```
```var_dump(trunc(10 / 1)); // 10
var_dump(trunc(-10 / 1)); // -10
var_dump(trunc(10 / -1)); // -10

var_dump(trunc(10.0)); // 10
var_dump(trunc(-10.0)); // -10
```

This post was published (and was last revised ) 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.