Cameron Diaz wanted ''a couple of years'' to prepare for her singing parts in 'Annie'.

The 42-year-old actress portrays evil Miss Hannigan in a remake of the 1982 classic movie but she despises being a ''bad'' singer and would've loved to have had a lot longer to get her vocals into tip-top condition for the role.

She said: ''I love singing but I hate how bad a singer I am, but I try.

''I would have liked a couple of years to prepare for the role, which is what it required!

''But, I was surrounded by the best professionals and teachers and they rallied around me and gave me a voice that was usable.''

Singing wasn't the only thing to worry about on the set for Cameron as she also revealed she lost a fortune while filming the movie because her children co-stars made her put $1 into a jar every time she swore in front of them.

Speaking on 'The Graham Norton Show', she quipped: ''Look, they are in an adult situation and if they don't like my language, then don't f**king show up! And second, these kids learn early.

''They run a scam and get all the adults scared and they are like, 'You can't swear in front of me and if you do, you have to put money in the jar because I'm a kid,' and they walk away with hundreds of dollars!

''You can't even whisper a swear word without them saying, 'You owe me a dollar.' They have a pile of cash when they leave and I am like, 'No, no, no, I don't play that.' ''

To watch the full interview tune into 'The Graham Norton Show' on BBC One on Friday at 10.35pm.