 According to the United States Census Bureau, the county has a total area of , of which is land and (0.2%) is water.It is located in the Blue Ridge Mountains of southwestern Virginia.The county seat, the town of Floyd, is southwest of Roanoke on US 221.