We asked the BuzzFeed Community to tell us which actors were perfectly *and* horribly cast in movie roles (to get a full picture of character portrayals in film). Here's what they had to say.
Warning: Potential movie spoilers ahead! 🚨
Note: Some submissions were pulled from various Reddit threads by users u/TrickDragonFruit1, u/MikeBrando23, and u/[deleted].
1. Horribly cast: Cameron Diaz as Jenny Everdeane in Gangs of New York (2002)

2. Perfectly cast: Daniel Kaluuya as Chris Washington in Get Out (2017)

3. Horribly cast: Ben Affleck as Bruce Wayne/Batman in Batman v Superman: Dawn of Justice (2016)

4. Perfectly cast: Rosamund Pike as Amy Dunne in Gone Girl (2014)

5. Horribly cast: Topher Grace as Eddie Brock/Venom in Spider-Man 3 (2007)

6. Perfectly cast: Awkwafina as Billi Wang in The Farewell (2019)

7. Horribly cast: James Corden as...well, any character in any movie he's been in

8. Perfectly cast: Lupita Nyong'o as Adelaide Wilson/Red in Us (2019)

9. Horribly cast: Tom Cruise as Jack Reacher in Jack Reacher (2012)

10. Perfectly cast: Angelina Jolie as Lisa Rowe in Girl, Interrupted (1999)

11. Horribly cast: Jared Leto as the Joker in Suicide Squad (2016)

12. Perfectly cast: Ana de Armas as Marta Cabrera in Knives Out (2019)

13. Horribly cast: Anne Hathaway as Mirana, the White Queen in Alice in Wonderland (2010)

14. Perfectly cast: Harrison Ford as Indiana Jones in the Indiana Jones franchise

15. Horribly cast: Keanu Reeves as Jonathan Harker in Bram Stoker's Dracula (1992)

16. Perfectly cast: Keanu Reeves as Neo in the Matrix franchise

17. Horribly cast: Benedict Cumberbatch as Dr. Strange in the MCU

18. Perfectly cast: Toni Collette as Annie Graham in Hereditary (2018)

19. Horribly cast: Rami Malek as Freddie Mercury in Bohemian Rhapsody (2018)

20. Perfectly cast: Angela Bassett as Tina Turner in What's Love Got to Do With It (1993)

21. Horribly cast: Cara Delevingne as Laureline and Dane DeHaan as Valerian in Valerian and the City of a Thousand Planets (2017)

22. Perfectly cast: Samuel L. Jackson as Nick Fury in the MCU

23. Horribly cast: Mila Kunis as Jupiter Jones in Jupiter Ascending (2015)

24. Perfectly cast: Anthony Hopkins as Dr. Hannibal Lecter in The Silence of the Lambs (1991)

25. Horribly cast: Matthew Goode as Ozymandias in Watchmen (2009)

26. Perfectly cast: Michelle Yeoh as Eleanor Sung-Young in Crazy Rich Asians (2018)

27. Horribly cast: Arnold Schwarzenegger as Mr. Freeze in Batman & Robin (1997)

28. Perfectly cast: Carrie Fisher as Princess Leia/General Leia Organa in the Star Wars franchise

29. Horribly cast: Michael Cera as Scott Pilgrim in Scott Pilgrim vs. the World (2010)

30. Perfectly cast: Regina Hall as Brenda Meeks in the Scary Movie franchise

31. Horribly cast: Natalie Portman as Lena in Annihilation (2018)

32. Perfectly cast: Matthew Lillard as Shaggy in Scooby-Doo (2002)

33. Horribly cast: Emma Watson as Belle in Beauty and the Beast (2017)

34. Perfectly cast: Patrick Stewart as Professor X in the X-Men franchise

35. Horribly cast: Charlie Hunnam as Raleigh Becket in Pacific Rim (2013)

36. Perfectly cast: Jennifer Hudson as Effie White in Dreamgirls (2006)

37. Horribly cast: Emily Blunt as Kate Macer in Sicario (2015)

38. Perfectly cast: Kara Hayward as Suzy Bishop in Moonrise Kingdom (2012)

39. Horribly cast: Nat Wolff as Light Turner/Kira in Death Note (2017)

40. And perfectly cast: Heath Ledger as the Joker in The Dark Knight (2008)

Note: Some submissions have been edited for length and/or clarity.