# TypeError: can only concatenate str (not "float") to str in Python

Hello Guys, I am a beginner in Python and I have a homework need to calculate the area of a circle. I wrote a small function like this:

` ````
def areaOfCicle():
PI = 3.14
radius = float(input(' Please Enter the radius of a circle: '))
area = PI * radius * radius
circumference = 2 * PI * radius
print(" The area of a circle = " + area)
print(" The circumference of a circle = " + circumference)
areaOfCicle()
```

But running the code above I got an exception **TypeError: can only concatenate str (not "float") to str**.

` ````
Please Enter the radius of a circle: 6
Traceback (most recent call last):
File "main.py", line 10, in <module>
areaOfCicle()
File "main.py", line 7, in areaOfCicle
print(" Area Of a Circle = " + area)
TypeError: can only concatenate str (not "float") to str
```

Why does python not auto-convert numbers to strings? and how can I solve it?

I'm using window 11 and Python 3.9.

Thank in advance

**2**answer(s) found.

- r2
ramesh Apr 23 2022

You need to convert the float value to a string before concatenating it with a string. You can use

`str()`

function to help convert float to string in Python. See example below:`def areaOfCicle(): PI = 3.14 radius = float(input(' Please Enter the radius of a circle: ')) area = PI * radius * radius circumference = 2 * PI * radius print(" Area Of a Circle = " + str(area)) print(" Circumference Of a Circle = " + str(circumference)) areaOfCicle()`

#Output

`Please Enter the radius of a circle: 67 Area Of a Circle = 14095.46 Circumference Of a Circle = 420.76`

- M0
Mohan Reddy Apr 23 2022

If you concatenate the string with some dynamic value you can use format

`%.2f`

. It will auto convert any type to string. See example:`print(" Area Of a Circle = %.2f" %area)`

I hope this tip will useful for you.

Leave An Answer* Type maximum 2000 characters.

* All comments have to wait approved before display.

* Please polite comment and respect questions and answers of others.