There are multiple ways to **solve "Invalid Arithmetic Operator" error when trying to do floating-point math in bash**. Often the errors are caused by using the wrong syntax for performing floating-point calculations.

**Note:**

Note that bash does not support floating-point arithmetic operations. We need to use an external utility like bc.

`bc`

command

In bash, we can use the `bc`

command to perform floating-point math. For example:

```
echo "4.2 + 1.2" | bc
```

result into:

```
5.4
```

`-l`

option

We can use the `-l`

option to enable math functions and other advanced features:

```
echo "sqrt(3)" | bc -l
```

THe output of this command is:

```
1.73205080756887729352
```

Without the option '-l' we will get result: 1

## Float precision

In in order to specify the precision we can use `scale`

:

```
a=10
b=3
echo "scale=2 ; $a / $b" | bc
```

The result will have two decimal places:

```
3.33
```

**Note:**

bc is a calculator(terminal based) bundled with most distributions

## Float calculation to variable

To assign the result of a floating-point calculation to a variable, you can use the `$(())`

operator, like this:

```
a=$(echo "4.2 + 1.2" | bc)
```

## syntax error: invalid arithmetic operator

The error can be reproduced by the following bash script:

```
a=4.2
b=1.2
ab=$((a + b))
```

Which raise an error:

```
bash: 4.2: syntax error: invalid arithmetic operator (error token is ".2")
```

## awk to calculate floating numbers

As alternative solution for floating-point math in Bash we can use command `awk`

:

```
a=4.2
b=1.2
echo "$a $b" | awk '{print $1 - $2}'
```

result is:

```
3
```