# 2.2. Number¶ ## 2.2.1. fractions: Get Numerical Results in Fractions Instead of Decimals¶

Normally, when you divide a number by another number, you will get a decimal:

```2 / 3 + 1
```
```1.6666666666666665
```

Sometimes, you might prefer to get the results in fractions instead of decimals. There is Python built-in function called `fractions` that allows you to do exactly that. The code above shows how it works:

```from fractions import Fraction

res = Fraction(2 / 3 + 1)
print(res)
```
```3752999689475413/2251799813685248
```

Cool! We got a fraction instead of a decimal. To limit the number of decimals displayed, use `limit_denominator()`.

```res = res.limit_denominator()
print(res)
```
```5/3
```

If we divide the result we got from `Fraction` by another number, we got back a fraction without using the `Fraction` object again.

```print(res / 3)
```
```5/9
```

## 2.2.2. How to Use Underscores to Format Large Numbers in Python¶

When working with a large number in Python, it can be difficult to figure out how many digits that number has. Python 3.6 and above allows you to use underscores as visual separators to group digits.

In the example below, I use underscores to group decimal numbers by thousands.

```large_num = 1_000_000
large_num
```
```1000000
```

## 2.2.3. Confirm Whether a Variable Is a Number¶

If you want to confirm whether a variable is a number without caring whether it is a float or an integer, numbers, use `numbers.Number`.

```from numbers import Number

a = 2
b = 0.4

# Check if a is a number
isinstance(a, Number)
```
```True
```
```# Check if b is a number
isinstance(b, Number)
```
```True
```

## 2.2.4. Get Multiples of a Number Using Modulus¶

If you want to get multiples of a number, use the modulus operator `%`. The modulus operator is used to get the remainder of a division. For example, `4 % 3 = 1`, `5 % 3 = 2`.

Thus, to get multiples of `n`, we select only numbers whose remainders are 0 when dividing them by `n`.

```def get_multiples_of_n(nums: list, n: int):
"""Select only numbers whose remainders
are 0 when dividing them by n"""
return [num for num in nums if num % n == 0]

nums = [1, 4, 9, 12, 15, 16]
```
```get_multiples_of_n(nums, 2)  # multiples of 2
```
```[4, 12, 16]
```
```get_multiples_of_n(nums, 3)  # multiples of 3
```
```[9, 12, 15]
```
```get_multiples_of_n(nums, 4)  # multiples of 4
```
```[4, 12, 16]
```