# Strange problem with double integrals

I need to calculate a double of integral a large expression numerically. But, I found a strange error. The code:

```
def doubleIntegral():
def f2(theta):
def f1(phi):
return theta*phi/pi
return numerical_integral(f1,0,2*pi)[0]
return numerical_integral(f2,0,pi)
```

works. but

```
a = theta*phi/pi # Suppose this is a huge expression that came out of previous calculations
def doubleIntegral():
def f2(theta):
def f1(phi):
return a
return numerical_integral(f1,0,2*pi)[0]
return numerical_integral(f2,0,pi)
```

doesn't work

```
unable to simplify to float approximation
unable to simplify to float approximation
.
.
.
```

What is going on? And how can I fix this?

Try doing an internet search for using lambda functions for this. http://ask.sagemath.org/question/68/double-integral might be helpful along these lines...

my function doubleIntegral does the same thing as what that nestled numerical_integral with lambda functions (from that question) does. It has the exact same problem. Trying the internet search...